假设我需要使用具有两个节点A和B的A,A有2个步骤而B有3个步骤来进行这样的配置。手动顺序是:
在并行配置节点时,似乎chef中的search()无法获取属性。
我的问题是,如果有一种方法可以在B完成步骤1时暴露一些属性,那么节点A可以获得暴露的属性以继续其配置。(A将继续等待B的公开属性)
答案 0 :(得分:0)
Chef没有处理这件事。最好的Chef-y方法通常是使每个节点收敛(即最终一致)并继续尝试在循环中运行(通常通过chef-client的守护进程模式)。请记住,Chef是围绕一个收敛的Promise模型构建的,它没有“步骤”,只有所需的状态和当前状态。也就是说,现实世界实际上是程序性的,所以有时候走这条路更容易。 RunDeck和Fabric是我处理这种节点间编排的个人建议(你最终会得到一堆只有sudo chef-client
的RD或Fab任务),但MCollective和SaltStack也很受欢迎。如果你想考虑最基本的可能的编排层,Chef确实有一个非常基本的工具叫做Chef Push Jobs(甚至knife ssh
),但我不建议使用它。