我试图用厨师(不是单人)解决以下任务:
我需要不同配置的网络服务器。不同之处仅在于配置文件,例如: for varnish,php,nginx,...
现在我正在为每个网络服务器配置使用特殊的食谱。
我想知道我是否以及如何使用,例如json_attrib引导节点以设置属性,并在配方中使用它来定义必须选择哪个配置文件。
类似于脚本的选择取决于操作系统,但我想在引导节点时设置它。
答案 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