我不确定我是否理解角色应该如何与chef-solo一起使用。更具体地说,我正在寻找以下问题的答案:
(i)告诉chef-solo以某个角色运行的语法是什么?我设法使用:
chef-solo --override-runlist "role["oracle"]"
但这是“正确”的做法(我希望在标准使用厨师角色时我不需要“覆盖”任何东西)?另外,如果我使用此命令,它还会加载我指定的角色的所有属性,而不仅仅是运行列表吗?
(ii)有没有办法让solo.rb引用“默认”运行列表,然后让某些(或所有)角色以某种方式“引用”它?我需要在所有角色和环境下运行一些配方,而不是将它们复制到我的所有角色json文件中(出于可维护性原因)。
(P.S。我正在Windows上运行厨师独奏,万一它在某种程度上很重要......)
答案 0 :(得分:7)
您可以将jSON Attributes参数用于chef-solo。
运行
chef-solo -c conf.rb -j conf.json
conf.rb
设置菜谱路径,文件缓存路径以及您想要旋转的任何其他全局设置,conf.json
看起来像这样:
{
"some_attr": true,
"run_list": [
"role[solo_provisioned_node]",
"recipe[mycookbook::myrecipe]"
]
}
或在您提供的示例中,只是
{
"run_list": [
"role[oracle]"
]
}