【问题标题】:Unable to override chef-attributes无法覆盖厨师属性
【发布时间】:2018-04-14 23:21:24
【问题描述】:

我在 powershell 中运行以下命令来执行厨师操作。

chef-client -o 'recipe[cookbook]' -j attributes-file.json

json文件内容如下

{
    "param1": {
               "param2":["value1","value2","value3"]
     }
}

当我们第一次运行 chef-client 时,在 chef-node 中设置了属性并且成功。但是我们第二次使用不同的“param2”内容运行相同的命令,例如。 "param2":["value4","value5"],它仍然选择 ["value1","value2","value3"] 作为值。

我们如何覆盖 chef-client 中的现有值?和/或在执行后取消设置节点值?

请注意:由于厨师是通过 Cloudify 远程触发的,因此我们无法执行刀命令。

【问题讨论】:

  • 你确定这是你使用的命令,特别是-o vs. -r

标签: chef-infra chef-recipe


【解决方案1】:

当您使用选项 -o 覆盖运行列表时,节点属性将不会更新。

请检查以下链接中的 -o RUN_LIST_ITEM

https://docs.chef.io/ctl_chef_client.html

【讨论】:

    【解决方案2】:

    根据 Chef-client 文档,“-j PATH,--json-attributes PATH” 包含 JSON 数据的文件的路径。用于设置**

    第一个客户端运行

    **。对于使用选项 -i 的所有未来运行,属性应为 **

    坚持在厨师服务器中

    **.

    【讨论】:

      【解决方案3】:

      我们解决了这个问题。 在配方执行结束时,我们将节点变量设置为空数组 []。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-21
        • 1970-01-01
        • 1970-01-01
        • 2014-12-09
        • 2013-05-19
        相关资源
        最近更新 更多