chef-solo から chef-server に移行する際に問題となる include_attribute と include_recipe の使い方
執筆時の chef-server と chef-solo のバージョンは、以下のとおりです。
$ rpm -q chef-server chef-server-11.1.6-1.el6.x86_64 $ chef-solo --version Chef: 11.16.4
chef-solo だと、include_attribute と include_recipe を使っていても問題が出なかったのですが、
chef-server に移行する際にエラーが出ました。
以下のページから問題となる箇所がわかりました。
ありがとうございます。
- chef-solo - include_recipeだけでは読み込み先のattributesが読み込まれない - Qiita
- 他の Cookbook の Attribute を部分的に読み込ませたい (けど無理っぽい) - murankの日記
まとめると、include_attribute と include_recipe を使う際は以下のどちらかが必要です。
- include したい attribute, recipe の対象 recipe を run_list に含む
- metadata.rb の depends に追加する
です。
これを行わないと、attributes(recipe) がないと言われてしまいます。
include_recipe をするのに run_list に追加するとそもそも include_recipe する必要がないと思いますので、
metadata.rb に depends を書いてしまうのが良さそうです。
(私のように) chef-solo 運用で metadata.rb を書いていなかった方は、一度確認することをおすすめします。