クックブックAとBがあり、Aのレシピ内でBのデフォルトレシピを実行してほしいのでをinclude_recipeで読み込む
A/recipes/default.rb
include_recipe "B"
クックブックBのattributesには、default.rbがあり
B/attributes/default.rb
default['B']['attr_key'] = 'attr_value'
が定義されており、レシピには
B/recipes/default.rb
#{node['B']['attr_key']}
として値を使っている。
この状態でクックブックAを実行すると、
#{node['B']['attr_key']}
のところで
NoMethodError
undefined method `[]' for nil:NilClass
というエラーになる。
解決するためには、クックブックAのmetadata.rbに
A/metadata.rb
depends "B"
と書いて依存関係を明確にすることで、実行時にBのattributesが読み込まれるようになる。
参考:
Chef does not read attributes and definitions - Stack Overflow