2013.07.10版
カレントディレクトリを作業用のディレクトリに移動する。
$ cd hogehoge
Vagrant設定ファイルの配置
$ vagrant init
Vagrant設定
カレントディレクトリにあるVagrantfileを編集する。
config.vm.box = "base"
の "base"
を、vagrant box addで登録したBOX名称に変更する。
VitrualBoxの設定で、作業PC(ホストOS)との通信用にhostonlyを追加しているのなら、 config.vm.network :private_network, ip:
のIPアドレスを適当なアドレスに書き換え、行頭の#を外して有効化する。
config.vm.network :private_network, ip: "192.168.56.10"
仮想マシン起動&接続設定
Vagrantを使用して、仮想マシンを起動する。
$ vagrant up
自動ログインの設定を登録する
$ vagrant ssh-config --host hogehost >> ~/.ssh/config
hogehostは仮想マシンに対する通称。
何をやっているかというと、作業PCの使用中のアカウントの.ssh/configに立ち上げた仮想マシンへのログイン情報追加記載している。
>>
が>
になると書き換えてしまうので要注意。
よってhogehostの様な通称は、今まで使ったことも使う予定も無いもので無いといけない。
この作業で$ ssh hogehost
で仮想マシンにログイン出来るようになる。
ただし、普通は$vagrant ssh
でログインする。
作業準備
リポジトリ(hogerepとした場合)作成
$ knife solo init hogerep
$ cd hogerep
仮想マシン上へのcookbookの展開やChefSolo実行の準備をする。
$ knife solo prepare hogehost
Sandbox onにする
起動と準備が完了した状態でSandbox onしておく。
$ vagrant sandbox on
cookbook作成
hoge1appのcookbookを./site-cookbooksに作る場合
$ knife cookbook create hoge1app -o site-cookbooks
cookbook編集
/site-cookbooks/hoge1app/内のrecipeやtemplateなど編集
適用cookbookを指定
./nodes/hogehost.jsonに適用するcookbookを指定
hoge1appのみ適用の場合は、
{"run_list":["hoge1app"]}
hoge1appとhoge2appとhoge3appを適用する場合は、
{"run_list":["hoge1app", "hoge2app", "hoge3app"]}
と記載。
cookbook適用
$ knife solo cook hogehost
適用cookbookを修正する場合
動作が思った物では無く、cookbookを修正する場合は、vagrantでsandbox on
のところまで戻る。
$ vagrant sandbox rollback
cookbook編集に戻って、やり直し。
適用cookbookが問題無く、続いて開発を進める場合
vagrant sandboxの状態を現時点まで進めるので、sandbox commit
を実行する。
動作したままcommitすると非常に時間がかかるのでサスペンドして行う。
$ vagrant suspend
$ vagrant sandbox commit
$ vagrant resume
次のcookbook作成に進み、検証を繰り返す。