如何使用单个属性引导节点

时间:2015-02-27 21:32:22

标签: chef knife

我试图用厨师(不是单人)解决以下任务:

我需要不同配置的网络服务器。不同之处仅在于配置文件,例如: for varnish,php,nginx,...

现在我正在为每个网络服务器配置使用特殊的食谱。

我想知道我是否以及如何使用,例如json_attrib引导节点以设置属性,并在配方中使用它来定义必须选择哪个配置文件。

类似于脚本的选择取决于操作系统,但我想在引导节点时设置它。

1 个答案:

答案 0 :(得分:1)

为每个Web服务器应用实例创建一个环境:

knife environment create app1 --description "First application"
knife environment create app2 --description "Second application"
knife environment create app3 --description "Third application"

在每个环境中,您可以设置应覆盖cookbook默认值的属性值:

{
  "name": "app1",
  "description": "First application",
  "override_attributes": {
    "mycookbook": {
      "att1": "one",
      "att2": "two"
    }
  }
}

引导新节点时,您选择应该应用哪个环境:

knife bootstrap server1 --run-list "recipe[mycookbook]" -E app1
knife bootstrap server2 --run-list "recipe[mycookbook]" -E app2
knife bootstrap server3 --run-list "recipe[mycookbook]" -E app3