Ubuntu
關於檢查遠端更新列表和更新遠端伺服器的簡單方法的思考
我一直在建構自己的控制面板(主要是業餘愛好),在其中控制我的網路伺服器上的託管包、我的郵件伺服器上的郵件帳戶、DNS 記錄等。我也用它來監控我的伺服器。
我沒有很多伺服器,所以更新它們並沒有那麼痛苦(現在我只是通過 SSH 一個一個登錄)。但是,如果我的平台變得更大,那麼通過一個單一的界面(列出每台伺服器的可用更新,選擇它們並更新它們)來管理更新也會很酷。我研究過 Puppet,但這對我來說是一個很大的矯枉過正。
有沒有辦法為自己建構這樣的系統?就像 webmin 一樣。也許這是不可能的,但我想確定。此外,我所有的伺服器都是基於 Debian(Ubuntu)的)。因為我的大多數伺服器都是基於 Ubuntu 的,所以我研究了 Canonical 的 Landscape,但我認為這是一種定價過高的方式,它會完全扼殺我的利潤。
有很多可能的方法……首先想到的是使用基於密鑰的身份驗證的ssh,在每台機器上都有一個專用的使用者帳戶,在“sudoers”中配置為允許訪問必要的命令而無需密碼。
使用 ssh 和密鑰,“這裡”的機械化程序可以通過 ssh 連接“那裡”、執行命令並返回輸出流和退出狀態來執行“那裡”的自動化程序。簡單說明:
$ ssh otherserver 'ls -l'
…將連接到其他伺服器,向您顯示遠端系統上主目錄中的文件列表,斷開連接,然後將您返回到本地(非遠端)提示。
如果您有基於密鑰的身份驗證,則不需要密碼。
如果遠端程序有必須回答的提示,一種方法是使用
expect
… 這是一種程式語言,旨在管理您需要“期待這個”然後“發送那個”並且可以處理超時的事情你。