在其他节点上的所有配方完成后,在节点上运行特定的Chef配方

时间:2015-07-31 15:51:41

标签: chef cookbook recipe

我正在使用3节点群集上的Chef自动执行HDP Hadoop群集安装。我有以下食谱,

  1. Ambari_Server
  2. Ambari_Agent
  3. Metastore
  4. 蓝图。
  5. 我想在所有节点(3台服务器)中完成所有配方(1,2,3)之后,才在特定节点上运行blueprint recipe(4)。寻找使用厨师在这里做的最佳选择。

    提前致谢。

1 个答案:

答案 0 :(得分:0)

我很高兴在这方面做错了但是据我所知,没有办法和厨师一起做这样的编排。在我的头脑中,您可以在每个其他食谱的运行结束时设置一个属性,然后在您的相关配方的开头有一个警卫,在运行之前检查它们是否都是真的。

Ambari_Server
...
node.set['Amari_Server']['installed'] = true

Ambari_Agent
...
node.set['Amari_Agent']['installed'] = true

Metastore
...
node.set['Metastore']['installed'] = true

Blueprint
...
if node['Amari_Agent']['installed'] and node['Armari_Server']['installed'] and node['Metastore']['installed']
# Do whatever blueprint does
...

这很麻烦,可能需要多次收敛。