如何管理 20 台虛擬機的配置和自動部署
我有一個 TeamCity 建構伺服器,有大約 20 個“建構代理”,包括 Windows 和 MacOS 機器。
通常,我需要安裝更新版本的 XCode 或 VisualStudio 或其他一些工具。必須在所有機器上手動執行此操作既無聊又容易出錯。我正在嘗試找出實現以下目標的最佳方法:
- 使更改系統配置變得容易,而無需在所有機器上手動進行。
- 使向組中添加新機器變得容易。
- 確保機器盡可能相同
這些機器正在執行的作業比較繁重,完全消耗 8 個核心,並且 IO 非常繁重。如果解決方案包括花錢,那很好。
有幾個方向你可以用這個。這取決於您擁有的基礎設施,以及您願意支付和/或部署的軟體。
擁有這麼多獨立的建構機器的目的是什麼?是保持程式碼項目彼此隔離,還是通過額外資源最大限度地提高建構速度?還是建構機器實際上是您網路上的客戶端工作站,用於建構以外的其他目的?
如果要保持建構環境隔離,那麼虛擬化是一個很好的說服途徑。您將能夠將 20 台建構機器提升為單獨的 VM,而無需為每台機器購買/配置硬體。
另一方面,如果是為了性能擴展,將建構機器捆綁到 VM 上並沒有多大意義,因為主機上的 VM 會爭奪該主機的 CPU、RAM 和磁碟可用性。您最好通過添加額外的硬體單元來根據需要添加最大數量的 CPU 核心、Gbs RAM 和磁碟軸。
至於在所有機器上更新軟體包的要求: - 對於無需重新部署作業系統的多個 Windows 機器上的統一軟體管理,請查看 Microsoft 的 System Center Config Manager 和 System Center Essentials。它們聽起來很適合您的要求: http: //www.microsoft.com/systemcenter/en/us/products.aspx
- 對於整個系統部署,您需要更改系統“映像”,然後重新將該映像部署到您的建構機器上,您可以使用內置在您使用的任何虛擬化產品中的功能的虛擬機來執行此操作 - ESX 或 Hyper-V 上的“模板”。或者,您可以查看 PXE 啟動建構解決方案,如 Windows 部署服務。
無論您採用哪種方式,您最大的痛點可能是在您的建構機器上混合使用 Windows 和 MacOS。一個標準的作業系統幾乎是能夠以統一的方式更新它們的先決條件。