【发布时间】:2018-07-02 23:54:51
【问题描述】:
是否可以在 Chef Solo 的 JSON 中指定属性值?我有一个带有运行列表的 solo.json,我想在那里指定属性。 Chef 文档似乎表明我应该可以执行以下操作:
{
"hostname": {
"test": "value2"
},
"default_attributes": {
"hostname": {
"test": "value3"
}
},
"override_attributes": {
"hostname": {
"test": "value4"
}
},
"default": {
"hostname": {
"test": "value5"
}
},
"run_list": [
"recipe[hostname::default]"
]
}
但是,每当我尝试访问我的配方中的值时:
p node['hostname']['test']
我只是得到了 attributes/default.rb 中定义的值,如果我没有在那里定义它,我会得到一个 nil 值。
有没有办法引用这些值?
【问题讨论】:
-
一种更简单的方法(至少对我而言)是创建一个“覆盖”食谱,其中只有一个带有
node.override值的属性文件,然后运行 chef-solo -c ~/.chef/solo.rb -j ~/.chef/solo.json -o my_overrides_cookbook,recipe[recipe_to_run]以确保它覆盖您的默认值跨度>
标签: chef-infra chef-solo