我试图在Packer构建中预设一个Chef属性,但似乎无法使其工作:
"provisioners": [
{
"chef_environment": "test_cookbook",
"environments_path": "environments",
"execute_command": "{{if .Sudo}}sudo {{end}}chef-solo --no-color --legacy-mode -c {{.ConfigPath}} -j {{.JsonPath}}",
"json": {
"test_cookbook": {
"my_attr": "test"
}
},
"run_list": [
"test_cookbook"
],
"type": "chef-solo",
}
]
它总是作为一个空值传递
output="#{Chef::Log.info(node['my_attr'])}"
log output
file "/tmp/#{node['my_attr']}" do
content output
end
我已经参考了这个在Chef Solo JSON中使用属性。
my_attr
键是嵌套在映射中的test_cookbook
键内部。你尝试过访问test_cookbook
键吗? - Matt Schuchard