[Chef]"No resource or method named bash"の原因と対処法

Chefで、例えばこんなレシピを書いたときに
bash "hostname command" do
  code <<-EOT
    hostname #{node["net"]["fqdn"]}
  EOT
end
"No resource or method named bash"
みたいなエラーが出ることがあります。
これ結構わかりにくいですよね。
「いやいや、"bash"という名前のresourceはあるでしょ」って突っ込みたくなります。

原因

attributesに値が未設定のときにこのエラーが出ます。
上記の例でいうと、#{node["net"]["fqdn"]}が未定義なのが原因です。

attributes/default.rb とか nodes/*.json ファイルなどで値を定義してあげましょう。
カテゴリ: