从 JSON Chef 读取参数

Read params from JSON Chef

我正在尝试将一些值从 json 文件传递​​到厨师食谱中。
我只想通过远程文件在我的食谱中设置一些值。

我的 json 文件 my_conf.json 看起来像这样:

{ 
  "something": {
    "listen_port": "81",
    "listen_path": "/myapp"
  },
  "users":{
     "user": "me"
  }
}

我 运行 我的厨师客户在参数中有这个 json:

chef-client -z run.rb -j my_conf.json

在我试过的食谱中:

@test = node[:something][:listen_port]
@test = node['something']['listen_port']
@test = node.default[:something][:listen_port]

但没有任何效果。 有什么想法吗?

node['something']['listen_port'] 是正确的,但 node[:something][:listen_port] 也可以。更有可能分配给一个实例变量(@test =)而不是一个普通的局部变量(test =)是令人困惑的事情。 Chef 在内部使用 Ruby 作用域做了很多魔术。