如何将厨师食谱/食谱应用于多个节点?

时间:2014-12-08 07:51:18

标签: ruby chef knife

Here是使用Chef将cookbook应用于节点的示例。但没有人告诉过多个节点。例如,我有一个akka应用程序,它传递了akka.cluster.seed-nodes个参数。所以算法应该是:

  1. 定义数组" IP"使用IP地址,如[192.168.1.1],[192.168.1.2],[192.168.1.3]
  2. 定义空数组" bootsrapped"使用bootsrapped ip addresses
  3. 开始迭代" IP"
  4. 使用当前IP和"传递"调用knife bootstrap -Dakka.cluster.seed-nodes与" bootsrapped"值
  5. 将boostrapped ip存储在第二个数组中
  6. 转到3
  7. 因此,目标是编写一个可以应用于服务器的多个节点的脚本。厨师怎么做?

1 个答案:

答案 0 :(得分:1)

您不会在服务器端执行此操作。实际上,服务器甚至不会将配方应用于单个节点。如果您希望在其上运行具有相同配方的多个Chef节点,您只需创建多个Chef节点并为它们提供所有相同的run_list。您可以将这些配方打包成一个角色,但这并不会改变单独定义每个配方的需要。

如果您想要编写此脚本,您可以在工作站(您运行刀的节点)上执行此操作。您可以使用一个小脚本来迭代IP数组和每个引导程序,或者您可以使用Vagrant之类的工具在单个DSL文件中定义整个节点集。