用puppet / mcollectivepipe理svn回购

我有兴趣听听人们如何pipe理代码部署,以及如何将其与编排系统联系起来。

我一直没有find一个好的木偶颠覆模块,这是我想要的方式。 假设我把我的应用程序服务器分成两组,A和B,而且我以一种跷跷板的方式进行部署。 我所描绘的是有两个variables来定义每个组应该使用的修订版本。

$groupA_svn_tag = 'myCode-1.0' $groupB_svn_tag = 'myCode-1.0' 

然后,当我想要部署时,我将groupA脱机(在我的负载平衡器中)并增加标记variables。

 $groupA_svn_tag = 'myCode-1.1' $groupB_svn_tag = 'myCode-1.0' 

我等待傀儡做它的事情(svn开关myCode-1.1),并翻转平衡器,并增加groupB。

也许这是对木偶的滥用,因为它更像是一种“保持这种状态的服务器”的工具。 我应该使用mcollective吗? 其他人如何解决这个问题?

我遇到的大多数发布过程都是部署构build的工件,而不是从svn直接签出。 然后,pipe理员就可以select在版本库中select哪个版本的文件(不pipe是jar,tar,rpm等)来部署,而不是在发布版本过程中使用svn标签。 如果我的经验总体上持有,那么也许这可能会导致缺乏对svn的支持? 需要其他人的一些意见。

你所做的事情的概念虽然是正确的,但正如前面提到的那样。 我会通过失败的A组,将一个artefact'myCode-1.1.tar.gz'部署到A组,然后重复B组。

即使你的版本库是svn,你也不需要在部署过程中混淆标签,只需在HEAD中查找所需的artefact版本,这个版本可以是你应用于组的puppet清单的一部分。

我认为你的程序是好的,你应该尝试使用MCollectivepipe理木偶运行,并尽可能地将节点从平衡器中取出。 我们广泛使用SVN来处理软件和configuration,并特别标记每个更改/发布,然后让puppet使用vcsdeploy来完成它的工作( http://www.practicalclouds.com/content/guide/pclouds-vcsdeploy-deploy-stuff )。

问候

戴夫