やりたいこと
berkshelfでcookbookの雛形を作った後、インストールしたいパッケージごとにrecipeを作り、run_listでrecipeを指定して実行する。
前提
- berkshelfとchefをgemなどでインストールしておく。
- カレントディレクトリは"/home/vagrant/chef-berkshelf/"とする。
cookbookの雛形を作成
$ berks cookbook berks-cookbook
実行するcookbookのパスを設定
$ vi solo.rb
solo.rb
cookbook_path ["/home/vagrant/chef-berkshelf"]
recipeを作成
$ vi berks-cookbook/recipes/apache.rb
apache.rb
package "httpd" do
action :install
end
service "httpd" do
action [ :enable, :start ]
end
実行するrecipeを設定
$ vi chef.json
chef.json
{
"run_list": [
"recipe[berks-cookbook::apache]"
]
}
パッケージのインストール
$ sudo chef-solo -c solo.rb -j chef.json
recipeをchef.jsonに追加していけば複数のパッケージをインストールできる。
サーバの用途ごとにchef.jsonを用意してやればcookbookを跨いでrecipeを実行することができる。