我有一個由幾個 Linux 節點組成的小型叢集。有一個共享的 NFS,我在所有節點上都有相同的使用者帳戶和共享的 SSH 金鑰,但除此之外,每個節點都有自己的檔案系統和配置。
我希望能夠從一個中央節點控制所有節點的配置。典型的配置主要由設定檔組成,位於使用者目錄和/etc
或/opt
.有時我還需要在所有節點上安裝相同的軟體包或執行其他 shell 命令。
這是一個小型集群,幾乎無法證明企業級自動化系統或其他複雜安裝的合理性。您是否嘗試過並測試過其他方法,最好是輕量級且開源的?或甚至直接基於 BASH/SSH 黑客?謝謝。
答案1
我強烈推薦 Saltstack。它靈活、可擴展、輕量級且免費。
答案2
安西布爾如果您使用自製程式從 Linux 或 Mac OS X 控制它們,應該可以解決問題。控制機不支援 Windows。 Linux 節點需要有 SSH 和 Python,但由於大多數 Linux 發行版預設安裝 Python,因此您可能已經涵蓋了。您需要做的就是安裝master 上的 ansible,應該很容易。
觀看23分鐘快速啟動視頻以獲得更好的想法。我還建議您看看臨時命令簡介文件中的部分:
在群組中的所有伺服器(本例中為 atlanta)上以 10 個並行分支執行此指令:
$ ansible atlanta -a "/sbin/reboot" -f 10
確保已安裝軟體包,但不更新它:
$ ansible webservers -m yum -a "name=acme state=installed"
要將檔案直接傳輸到許多不同的伺服器:
$ ansible atlanta -m copy -a "src=/etc/hosts dest=/tmp/hosts"
確保所有網路伺服器上都啟動了服務:
$ ansible webservers -m service -a "name=httpd state=started"
還有一些例子劇本。
答案3
答案4
嘗試預計腳本。它們是在多台機器上自動運行相同任務的好方法。
使用expect腳本,您將不必手動登入每台電腦並一次又一次地執行相同的任務。我用它來更改所有電腦上的使用者密碼、在每台電腦上執行檢查腳本等。