一次管理多台 Linux 伺服器

一次管理多台 Linux 伺服器

我有一個由幾個 Linux 節點組成的小型叢集。有一個共享的 NFS,我在所有節點上都有相同的使用者帳戶和共享的 SSH 金鑰,但除此之外,每個節點都有自己的檔案系統和配置。

我希望能夠從一個中央節點控制所有節點的配置。典型的配置主要由設定檔組成,位於使用者目錄和/etc/opt.有時我還需要在所有節點上安裝相同的軟體包或執行其他 shell 命令。

這是一個小型集群,幾乎無法證明企業級自動化系統或其他複雜安裝的合理性。您是否嘗試過並測試過其他方法,最好是輕量級且開源的?或甚至直接基於 BASH/SSH 黑客?謝謝。

答案1

我強烈推薦 Saltstack。它靈活、可擴展、輕量級且免費。

http://www.saltstack.com

答案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

對於執行命令,您可以使用可以在多個 SSH 伺服器上執行命令的工具

其中有一些:

  1. 噗噗
  2. 集群SSH

兩者都可以在 Debian 和 Ubuntu 中使用。

答案4

嘗試預計腳本。它們是在多台機器上自動運行相同任務的好方法。

使用expect腳本,您將不必手動登入每台電腦並一次又一次地執行相同的任務。我用它來更改所有電腦上的使用者密碼、在每台電腦上執行檢查腳本等。

相關內容