如何在本地模式下将属性传递给chef

时间:2016-02-11 10:13:07

标签: chef

我想覆盖我在cookbook中的默认属性文件中定义的默认属性:

/attributes/default.rb

default[:server][:name] = "test"
default[:server][:port] = "8080"

我在本地模式下运行chef-clientchef-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

0 个答案:

没有答案