我想覆盖我在cookbook中的默认属性文件中定义的默认属性:
/attributes/default.rb :
default[:server][:name] = "test"
default[:server][:port] = "8080"
我在本地模式下运行chef-client
:chef-client -z -j node.json
使用此 node.json :
{
"name": "mycookbook",
"default__attributes": {
"server": {
"name": "myCustomName"
}
},
"run_list": [
"recipe[mycookbook]"
]
}
该手册正在运行而没有抱怨,但属性server.name
永远不会被我在 node.json 文件中传递的值所取代。
我在这里做错了什么?
更新:
Recipe /recipes/default.rb :
template 'C:\my.properties' do
source 'my.properties.erb'
end
模板 /templates/default/my.properties.erb :
connectionUrl=jdbc:jtds:sqlserver://<%= node[:server][:name] %>:<%= node[:server][:port] %>;databaseName=test