【问题标题】:Overriding role attributes in chef-client with packer使用打包程序覆盖厨师客户端中的角色属性
【发布时间】:2019-02-12 16:37:37
【问题描述】:

我有一个厨师角色:

{
  "name": "my-role",
  "description": "Defines a role",
  "override_attributes": {
    "cookbook_one" {
      "key": "value"
    }
  }
  "run_list": [
    recipe["cookbook_one"],
    recipe["cookbook_two"]
  ]
}

我在提供程序块中使用 Packer 调用:

{
  "variables": {
    "my-variable": ""
  },
  "provisioners": [
    {
      "type": "chef-client",
      "server_url": "https://mychefserver.com/",
      "run_list": "role[my-role]",
      ...
    }

我需要能够从 Packer 中向 recipe_two 添加一些属性。我读到我可以使用json block of the chef-client 配置器向运行列表添加一些属性。我试过了

  "type": "chef-client",
  "server_url": "https://mychefserver.com/",
  "run_list": "role[my-role]",
  "json": {
    "override_attributes": {
      "cookbook_two": {
        "some_key": "value"
      }
    }
  }

当我运行 packer 时,我可以在 /tmp/packer-chef-client/first-boot.json 中看到

   {
     "override_attributes": {
       "cookbook_two": {
         "some_key": "{{ user `my-variable` }}"
       }
     },
     "run_list": [
       "role[my-role]"
     ]
   }

但是 recipe_two 的 override_attributes 不会暴露给食谱。我找不到任何关于如何让它以这种方式工作的示例,也找不到正确的“json”格式:{} 块通过。

非常感谢通过从 Packer 调用的角色向我的食谱公开被覆盖属性的任何方向

【问题讨论】:

    标签: chef-infra chef-recipe packer


    【解决方案1】:

    您的打包程序文件不应包含override_attributes 部分。相反,它应该是这样的:

    "type": "chef-client",
      "server_url": "https://mychefserver.com/",
      "run_list": "role[my-role]",
      "json": {
        "cookbook_two": {
          "some_key": "value"
        }
      }
    

    【讨论】:

      【解决方案2】:

      您的问题与打包程序本身无关,而是如何执行chef-client 并为厨师客户端运行提供自定义属性。

      您可以通过在chef-client 中包含--json-attributes(我强烈建议您访问文档,因为它包含示例)来提供自定义属性

      -j PATH, --json-attributes PATH

      包含 JSON 数据的文件的路径。用于设置第一个客户端运行。对于使用选项 -i 的所有未来运行,属性预计将保留在厨师服务器中。

      所以回到你对打包机的问题...... 使用您想要覆盖的属性创建一个 json 文件,并确保您使用 --json-attributes 从打包程序调用 chef-client 并将其指向您创建的 json 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-19
        相关资源
        最近更新 更多