add_recipe に cookbook ファイル名を渡しても動く理由
例えば、barというcookbookの、default.rbレシピを実行したい時、以下のように記述します。
Chef-solo の attributes.json ファイル
{
"run_list" : [
"recipe[bar]"
]
}
Vagrantfile ファイル
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "repo/site-cookbooks"
chef.add_recipe "bar"
end
どちらも、
-
::XXXXXが無い場合は::defaultが使われる
という仕様になっています。
ですので、省略せずに記述する場合は以下のようになります。
{
"run_list" : [
"recipe[bar::default]"
]
}
default.rb 以外のレシピファイルを実行したい場合
レシピファイル名をそれぞれ明示的に記述します。
例えば、「bar クックブックの recipe/hoge.rb レシピファイルを実行したい」場合は、以下のように記述します。
{
"run_list" : [
"recipe[bar::hoge]"
]
}
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "repo/site-cookbooks"
chef.add_recipe "bar::hoge"
end