前提
vagrantがインストールされていること
➡参考http://qiita.com/pollseed/items/c469e2d53d7125594043
$ vagrant -v
手順
vagrant起動
$ vagrant halt && vagrant up 再起動します
$ vagrant ssh
chef-soloいんすとーる
$ curl -L https://www.opscode.com/chef/install.sh | sudo bash chefをカールします
$ chef-solo -v 一応確認
クックブック作成
$ sudo knife cookbook create sample -o /var/chef/cookbooks
/var/chef/cookbooks/sample/recipes/default.rbを編集して、レシピを書きます
個人的なおすすめですが、sudoeditを使うと設定ファイル反映されます
パッケージをインストールするように追記します
default.rb
package "sample" do
action :install
end
実行します
$ sudo chef-solo -o sample
$ rpm -q sample
Vagrantにaddされているものによりますが、私の環境ではCentOS向けのパッケージがインストールされていますので、rpmで確認します
なお、chefで使うことになるこのレシピですが、毎回同じ結果を与える思想の元に動きますので、実行するたびに何かがかわることはありません
とはいえ、勿論rubyのソースがエラーになっていたら話はかわってきますが、そうでない限りConverging 〜 resourcesというメッセージの通り、レシピに定義された状態にノードを収束させることを保証してくれます