2016-11-28 153 views
1

我是新來的廚師,我現在正在爲此付出代價。我們目前在Windows環境中使用廚師獨奏。我們每3個月發佈一次產品。 Chef在我們的組織中用於設置生產構建環境,開發人員機器等。這些環境的設置涉及安裝一些開發人員工具,如Visual Studio,第三方軟件等。設置環境所需的工具/軟件列表可以不斷更新各版本。例如:如果產品版本1.0要求安裝Visual Studio 2015,則產品版本2.0可能需要Visual Studio 2015 Update 1等。廚師和產品版本 - 不同產品版本的配置環境

更確切地說,所有服務器應該有完全相同的軟件/配置對他們**特定**產品版本**。我們沒有舞臺和製作的概念。我們在開發人員系統上設置的構建環境應該與我們在特定產品版本的生產框中設置的構建環境相同。

我們使用廚師的方式如下: - 終止用戶登錄服務器並啓動具有管理權限的Powershell控制檯。 -PowerShell腳本被執行。此腳本首先在客戶端計算機上安裝廚師獨奏,並在本地複製所有廚師腳本。 - 然後執行chef腳本來設置開發人員構建環境。

這是我的要求:我喜歡利用廚師爲特定版本重新創建生產構建環境/開發人員構建環境。例如: 開發人員想要爲產品版本1.0創建構建環境。廚師腳本應該處理這個要求。如果開發人員想要爲產品版本2.0創建開發人員環境,則廚師腳本也應該處理此問題。

這可能使用廚師嗎?我認爲這是可能的,因爲廚師腳本可以版本化。如果是這樣,使用廚師的方法是什麼?任何幫助將非常感激。請引導我採取最佳做法。

我想到的一個方法是,我們可以在我們的源代碼控制(Perforce)中爲每個產品版本標記主廚腳本。這樣,無論何時我們想要爲特定產品版本設置開發人員環境,我們都會通過使用標籤並設置環境來爲該產品版本提供相關的腳本。然而,這似乎不是一個足夠好的方法。 所以,我在這裏尋找幫助。

是否有類似於所有源代碼管理系統可用的標籤功能?廚師應該有這樣做。

問候, 基蘭

+0

答案/引導,不要交叉後請。 – Tensibai

+0

投票結束,因爲有很多方法來實現這一點。 – Tensibai

+0

@Tensibai我只是想爭取儘可能多的意見。我不會假設堆棧溢出的每個用戶都處於閒置狀態。所以在這裏幾個更多的答案將是非常有用的。我要求這個問題保持開放,除非有足夠的理由來解決這個問題。 –

回答

1

如果不同產品發行版本的要求都或多或少相同,您可以處理與1次的配方,屬性和角色。

您爲您的產品發佈版本創建一個屬性,並根據此配置在您的配方中執行一些邏輯。

然後創建角色,每產品發行版本創建1個角色,並在那裏添加具有正確值的相同屬性。

後,所有你需要,配置環境時,是將角色傳遞給像廚師​​獨奏:上鬆弛給出

chef-solo -o role[myrole] 
+0

謝謝。似乎是個好主意。 –