- 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