search
LoginSignup
48
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

include_recipeだけでは読み込み先のattributesが読み込まれない

クックブック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

[#CHEF-3893] does "depend" is required in metadata.rb if you include_recipe - Opscode Open Source Ticket Tracking

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
48
Help us understand the problem. What are the problem?