3

我正在使用chef-client 食谱将机器配置为 chef client 。创建此客户端时如何配置节点属性?

我不想做knife node edit。我的目标是在创建此节点时设置一些节点属性,可能是通过向 JSON 文件添加一些内容。

更新:

我正在创建数百个节点,这些节点将使用这个脚本(参见要点)来引导厨师客户端。脚本中的 Node_name 对于每个节点都是不同的。同样,我想为将它们组合在一起的节点设置一个自定义属性。

例如,我想将属于特定项目的所有节点组合在一起。我在想我会给节点添加一个属性“project_id”。这样我以后可以搜索属于一个项目的所有节点。这对于部署特别有用 - 在尝试找出属于特定项目的所有 db_master 角色/webserver 角色/memcached 角色时。

所以我想要做的是:脚本中应该有一些占位符(您在要点中看到),我可以在其中添加自定义属性,如 project_id 或其他任何到节点。那可能吗 ?

4

3 回答 3

4

上述两种方法都可以,或者您可以使用类似的方法在食谱中创建它们

Node[attribute_name]

为了与您的 json 功能保持一致,您可以利用属性或标签

要添加属性,请在您生成的 json 文件中使用类似的内容。属性名称和值可以通过参数或 csv/xml 输入在您的脚本中生成

{

    "test_attribute" : "testvalue"
}

在您链接到的示例中,他们在厨师客户哈希下设置属性

"chef_client": {
 "server_url": "http://ec2-23-20-173-176.compute-1.amazonaws.com:4000",
 "interval": "20"
}

node["chef_client"]["interval"]这些属性被创建为普通节点属性,例如可以访问。

那有意义吗?

于 2012-11-14T21:52:48.730 回答
1

要么给客户端一个角色并在那里添加属性,要么使用 chef-client 的 -j 参数传递一个包含节点数据的 .json 文件。

于 2012-11-14T19:42:48.243 回答
-4

假设您想将配方鼠标添加到您的节点 target1。

knife node run_list add target1 "recipe[mouse]"

它应该适用于所有属性。

于 2013-07-31T17:07:27.413 回答