我正在研究如何在利用Chef的同时在多个主机上部署我的应用程序(Web / DB /应用程序层)。我所提出的是使用Chef配方将部署的每个步骤表示为单个节点状态。例如,如果有一个步骤来处理X守护进程的停止&监视,它可以写成一个厨师配方,只需要停止特定的X守护进程。 同样,将工件从共享位置移动到Web根目录的部署步骤也可以作为表示节点特定状态(将工件从A点复制到B点)的主厨配方引用。 / p>
整个部署过程将包含基本上执行以下三项操作的各个步骤:
问题:
答案 0 :(得分:3)
这真的不是厨师最适合的事情。 Chef擅长融合配置,而不是程序位。使用Chef处理汇聚更改的部分,例如部署新代码或重写配置文件,使用程序工具处理其他位。
至于协调这个的工具,如果你想要更多服务y,RunDeck是一个选择。如果你想要一个命令行工具,请查看Fabric或者Capistrano。我个人使用混合,RunDeck plus Fabric来获得两者的最佳效果。其他一些不太完整的选项包括Chef Push Jobs,Mcollective和Saltstack。
答案 1 :(得分:1)
Puppet和Chef不是编排工具,从这个角度来看,他们做得非常糟糕。它们不是为了编排而设计的,即使有一些具有特定兴趣的政党正在推动业务流程定义的界限,以使厨师被考虑进行协调,但他们忽略了关键的事实/需求。不幸的是,我不知道有一个关于大型环境编排的严肃解决方案 - 大多数工具都非常特定于某些需求,而且有些工具还没有准备就绪。我不得不发明自己的解决方法来完成这项工作,但这样做并没有什么优雅。