引用Chef配方中的属性

时间:2017-02-06 19:04:57

标签: ruby chef chef-recipe string-interpolation chef-attributes

我有一个标题为default.rb的属性文件,其中有一个键default['current'],用于以字符串格式存储目录。我想使用它来更改目录时使用以下命令:

# Run database migrations
execute 'database migrations' do
  user    'ubuntu'
  cwd     "#{default['current']}"
  command 'sudo php artisan down && sudo php artisan migrate --force && sudo php artisan up'
end

相反,当我运行配方时,我收到以下错误。

NameError
---------
No resource, method, or local variable named `default' for `Chef::Recipe "deploy"'

有没有正确的方法来做到这一点,我错过了?我宁愿在工作目录中没有硬代码。

2 个答案:

答案 0 :(得分:3)

在配方中引用属性时,我们需要在node前加上cwd node['current'] ,如下所示:

content

另请参阅:Overriding attributes in the recipe

答案 1 :(得分:0)

这似乎得到了解答。但我没有看到与此文档的核心链接(IMO) 它就在这里:https://docs.chef.io/attributes.html