Linux 批量/遠端管理
除了我們的內部 IT 基礎設施外,我們還有大約 500 台 Linux 機器託管我們為線上世界提供的服務。它們被分組在一堆集群中,如 Database An、Product An、NFS、Backoffice 等。此外,它們由外部供應商根據我們的規範和要求進行管理。
然而,我們在(網路)軟體開發、推出和部署過程中遇到了很多麻煩——尤其是因為開發和登台環境與實時系統幾乎沒有任何共同之處(我省略了令人討厭的細節……) .
因此,我嘗試創建虛擬機,盡可能準確地複制各種實時系統,並準備將它們連接到例如開發數據庫,而不是對開發人員透明的“真實”數據庫(它們不是
root
)。這工作得很好,但是……我想知道如何遠端批量管理這些系統?是否有一些我不知道的軟體系列?或者,至少,一些人們應該熟悉的技術或原則?
我們會為每個開發人員提供一堆要在本地執行的圖像(VirtualBox)。質量保證部 將獲得虛擬集群(XEN 或 Hyper-V)。如果我需要提供一個額外的伺服器模組,重新路由一個新的數據庫連接或者只是想更新包管理器提供的所有內容……我怎麼可能做到這一點而不會被迫登錄到每個系統和/或請我的同事下載並執行一些夾具腳本?
我相信有很多解決方案。好吧,不知何故,我太愚蠢了,無法在搜尋引擎中輸入正確的關鍵字……或者這個問題不像聽起來那麼簡單嗎?
作為記錄:
- 幾乎所有系統都在執行 Debian GNU/Linux 6.x “擠壓”
- 沒有開發人員被迫在他/她的工作站上使用特定的作業系統
- 預算當然是有限的,但購買專有軟體也不算少
- 首選涉及我們上述提供商的解決方案
這取決於您到底需要什麼以及您正在尋找什麼。但一般來說,“配置管理”存在多種解決方案,例如:
等等。我個人會推薦 puppet,因為它有一個很大的社區和很多外部提供的食譜。這允許您自動配置和管理系統。如果您將其與自己的儲存庫和自動更新相結合,例如
unattended-upgrades
,您可以自動更新系統。另一種解決方案是提供您自己的軟體包,例如
company-base
etc.,它自動依賴於必要的軟體並可以自動配置您的系統。您還應該研究自動化部署(準系統和虛擬化)。如果您將其與配置管理或您自己的儲存庫相結合,您可以輕鬆地自動化和重新安裝您的系統。如果您想開始自動安裝,請查看支持 libvirt 和裸機安裝並集成了 puppet 支持的theforman 。如果您想自己做,您可以查看kickstart (redhat 等)或“預置”來自動配置您的系統。對於 Debian,您還可以使用類似debootstrap或名為grml-debootstrap的包裝器來支持虛擬化映像。
為了幫助為您的開發人員提供 VirtualBox 映像,請查看vagrant,它允許您使用 VirtualBox 自動創建虛擬化系統,支持 Chef、puppet 和 shell 腳本來自定義您的虛擬環境。
如果您想使用現有提供商的解決方案,您應該詢問他們如何管理您的系統,但這可能是某種配置管理。如果您可以訪問配置伺服器,則可以在您的系統上執行他們的代理。
對於 google 關鍵字,請查看
devops
、和。configuration management``it automation``server orchestration
簡而言之,盡可能地自動化,甚至不要考慮手動操作。