- Vagrantを使いVirtualBoxで仮想マシンをサクッと建てられる様に
- Chefを使い、環境構築をサクッとできるように
全体像
VagrantとChefの役割は以下の通り。
- Vagrant:仮想マシンの構築(OSインストール・初期設定)に使用
- Chef:構築したマシンの内部の設定(パッケージインストール・設定)に使用
Vagrantでマシンを建てて、それぞれのマシンの内部の設定をChefが行う感じ。
なぜVagrantを使うのか?
Chefスクリプトを作るためにはテスト環境が必要。
ChefではRollbackができないので、毎回マシンを建て直してテストする必要がある。
これは本当に面倒くさそう。。。
そこで、仮想マシンをサクッと建てられるVagrantを使用する。
Vagrantを使用すると、Vagrantfile
というファイルを作成し、あとはvagrant up
コマンド1発で新しい仮想マシンを構築することができる。
Chefでテストするために使うだけであれば、サードパーティー(Vagrantboxes)が用意している仮想マシンのイメージを使えば、これだけで作業が済む。
Vagrantで仮想マシンを構築
Vagrantboxesの以下のイメージを使って構築する。
- CentOS 6.4 x86_64 Minimal
vagrant box add base http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box mkdir /path/to/hello cd /path/to/hello vagrant init base vagrant up
chef-solo, knife-soloの導入
作業マシンからの作業
gem install chef # もしくはこちら # curl -L http://www.opscode.com/chef/install.sh | sudo bash gem install knife-solo # サーバにChefを導入 knife solo prepare <host>
Chefレポジトリの作成・Cookbookの作成
knife solo init <name> cd <name> git init . git add . git commit -m 'initial commit' knife cookbook create hello -o site-cookbooks