VirtualBox、Vagrant、knifeによる開発環境作成をやってみる。(1)
VirtualBox、Vagrant、knifeによる開発環境作成をやってみる。ホストはWindows7、ゲストはCentOS 5.9。開発環境としては、ゲストの中にGlassFish、PostgreSQLを準備してみる。
まずはお勉強から。
VirtualBoxとは
Oracle VM VirtualBoxの事で、Oracleが開発しているx86仮想化ソフトウェア。
Vagrantとは
VirtualBoxを簡単に操作するためのツールで、Rubyで記述されている。そのため、動かすためにはRubyが必要。Vagrantを使用すれば、コマンドラインから簡単に新しいVMを作成する事が出来る。
Chefとは
ruby製のサーバの構成管理ツールで、サーバ構築の自動化をしてくれるツール。ソフトウェアのインストールや設定などを設定ファイルに記述しておくことで、サーバをその設定ファイルの状態にしてくれる。設定ファイルにはサーバのあるべき完成状態を記述し、その差分をChefがうまいこと埋めてくれる感じ。
Chefでよく使用される用語は下記
・Client:Chef Serverに接続するもの全て。管理ツール(knife等)もClient
・Node:Chef Serverに接続するClientの中で、Chefで管理するマシンのこと。NodeはClient
・Resouce:設定の最小単位。例えば「◯◯をインストールする」とか
・Recipe:複数のResourceで構成される1つのグループ
・Cookbook:1つ以上のRecipeをグループとしてまとめたもの
・Role:どのCookbookをどういう設定で使うかを記述する
・リポジトリ:Cookbookを入れる場所。Git等でのバージョン管理が推奨される
Chef-soloとは
Chefサーバ無しでレシピを実行することができるツール。
knifeとは
Chefに付属するためのリポジトリ操作ツール。このコマンドを使ってCookbookを作ったり、NodeとRecipeを関連付けたりする。
knife-soloとは
knifeのプラグイン。これを使用すると、ローカルで作ったRecipeをリモートサーバへ送り、リモートサーバでchef-soloを実行することが可能。