Svn

使用 puppet/mcollective 管理 svn repo

  • February 23, 2013

我很想听聽人們如何管理程式碼部署以及他們如何將其綁定到他們的編排系統中。

我一直無法找到一個好的 puppet subversion 模組,它可以按照我想要的方式工作。假設我將我的應用程序伺服器分成兩組,A 和 B,並且我以蹺蹺板的方式進行部署。我所描繪的是有兩個變數來定義每個組應該使用什麼版本。

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

然後,當我想要進行部署時,我將 groupA 離線(在我的負載均衡器中)並增加 tag 變數。

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

我等待 puppet 做這件事(svn switch myCode-1.1)並翻轉平衡器並增加 groupB。

也許這是對 puppet 的濫用,因為它更像是一種“使伺服器保持這種狀態”的工具。我應該為此使用 mcollective 嗎?其他人如何解決這個問題?

我遇到的大多數發布過程都是部署建構的人工製品,而不是直接從 svn 簽出。然後,管理人員選擇在儲存庫中部署哪個版本的文件(無論是 jar、tar、rpm 等),而不是在發布建構過程中使用 svn 標籤。如果我的經驗普遍成立,那麼也許這可能導致您對 svn 的嘗試缺乏支持?需要其他人的一些評論。

您正在做的事情的概念雖然是合理的,但如前所述。我會通過使 A 組失敗,將人工製品“myCode-1.1.tar.gz”部署到 A 組來做到這一點。然後對 B 組重複。

即使您的儲存庫是 svn,您也不需要在部署過程中弄亂標籤,只需在 HEAD 中查找所需的工件版本,它可以是您應用於組的 puppet 清單的一部分。

引用自:https://serverfault.com/questions/478816