2013年1月9日水曜日

【Chef】had an error: ArgumentError: wrong number of arguments (0 for 1)

かなり初歩的だとは思うのですが、若干ハマったのでメモ

directory "#{node.dir.delete}" do
  recursive true
  action :delete
end

こんな感じでレシピを書いていたらタイトルのようなエラーが・・・
directoryに対する引数がおかしいよというエラーのようです
なぜかこの形式のだとattributes上手く参照できないようです
attributesの設定は以下

default["dir"]["delete"] = "/tmp/tmpdir3"

で調べたらレシピで参照する方法がいけないみたい
正解は以下

directory node["dir"]["delete"] do
  recursive true
  action :delete
end

attributesを参照する場合はnode["key1"]["key2"]という形式で必ず参照しましょう
他にも参照する方法はありますが、上記がChef的には推奨らしいです

0 件のコメント:

コメントを投稿