如何正确使用Roles与Chef-solo

时间:2014-07-13 15:48:10

标签: chef chef-solo

我不确定我是否理解角色应该如何与chef-solo一起使用。更具体地说,我正在寻找以下问题的答案:

(i)告诉chef-solo以某个角色运行的语法是什么?我设法使用:

chef-solo --override-runlist "role["oracle"]"

但这是“正确”的做法(我希望在标准使用厨师角色时我不需要“覆盖”任何东西)?另外,如果我使用此命令,它还会加载我指定的角色的所有属性,而不仅仅是运行列表吗?

(ii)有没有办法让solo.rb引用“默认”运行列表,然后让某些(或所有)角色以某种方式“引用”它?我需要在所有角色和环境下运行一些配方,而不是将它们复制到我的所有角色json文件中(出于可维护性原因)。

(P.S。我正在Windows上运行厨师独奏,万一它在某种程度上很重要......)

1 个答案:

答案 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]"
  ]
}