用ClusterSSH管理多臺Linux服務器
原創(chuàng)【51CTO精選譯文】編者按:Cluster SSH 是一個可以用來通過SSH協(xié)議同時管理多臺遠程計算機的工具。它非常適合用來快速配置一個集群中的所有運行相同服務和具備相同配置的計算機節(jié)點。現(xiàn)在有大量的開源管理工具,都可以實現(xiàn)這樣的管理,比如dsh、SUSE Manager等。下面是用ClusterSSH管理多臺Linux服務器的具體過程。
如果你是一名Linux系統(tǒng)管理員,那你每天一定會和許許多多的機器打交道,因為你要定期監(jiān)測和維護這些機器,如一批Web服務器,如果你要同時在多臺機器上敲入相同的命令,你可能會通過SSH登錄,然后逐臺敲入,如果使用ClusterSSH,可以為你節(jié)省不少類似的工作時間。
ClusterSSH是用Tk/Perl包裝XTerm和SSH后形成的新工具,就其本身而言,它可以運行在任何兼容POSIX的操作系統(tǒng)上,我曾經(jīng)在Linux,Solaris和Mac OS X上運行過它,它需要Perl庫Tk(在Debian或Ubuntu上就是perl-tk)和X11::Protocol(在Debian或Ubuntu上就是libx11-protocol-perl),此外,xterm和OpenSSH是必不可少的。
安裝
在Debian或Ubuntu上安裝ClusterSSH是相當簡單的,只需要敲入sudo apt-get install clusterssh就可以安裝好,至于依賴包你也不必擔心,一切都會為你裝好的,它也提供了適合Fedora的rpm包,在FreeBSD上可通過port系統(tǒng)安裝,還為Mac OS X準備了MacPort版本,因此你可以在你的蘋果電腦上安裝ClusterSSH,當然,如果你是極客,也可以下載源代碼自己編譯。
配置
可以通過ClusterSSH的全局配置文件/etc/clusters,或用戶home目錄下的.csshrc文件來配置它,我喜歡用戶級的配置方式,這樣同一個系統(tǒng)中的不同用戶可以根據(jù)自己的喜好進行配置,ClusterSSH定義了一個“cluster”機器組,你可以通過一個界面來控制這個組中的所有機器,在配置文件的頂端“clusters”部分,你可以詳盡地列出你的集群,然后用獨立的段落來描述每個集群。
例如,假設我有兩個集群,每個集群由兩臺機器組成,“Cluster1”由“Test1”和“Test2”兩臺機器組成,“Cluster2”由“Test3”和“Test4”兩臺機器組成,~.csshrc(或/etc/clusters)配置文件的內(nèi)容看起來應該是:
clusters = cluster1 cluster2 cluster1 = test1 test2 cluster2 = test3 test4
你也可以創(chuàng)建中間集群(包含其它集群的集群),如果你想創(chuàng)建一個名叫“all”的集群包含所有的機器,有兩種實現(xiàn)手段,首先,你可以創(chuàng)建一個包含所有機器的集群,如:
clusters = cluster1 cluster2 all cluster1 = test1 test2 cluster2 = test3 test4 all = test1 test2 test3 test4
但我更喜歡的方法是使用一個包含其它集群的中間集群:
clusters = cluster1 cluster2 all cluster1 = test1 test2 cluster2 = test3 test4 all = cluster1 cluster2
圖 1:啟動中的 ClusterSSH
通過調(diào)用包含cluster1和cluster2的“all”集群,這些集群發(fā)生的任何變化都能自動捕捉到,因此你不必更新“all”定義,當.csshrc文件變得很大時,此舉可以幫你節(jié)省大量的時間。#p#
使用ClusterSSH
ClusterSSH的使用方法和SSH類似,只需要運行cssh –l <用戶名> <集群名>就可以啟動ClusterSSH,并以你輸入的用戶名登錄到集群,在下圖中,你可以看到我已經(jīng)登錄到“cluster1”集群,窗口標題為“CSSH[2]”的小窗口是ClusterSSH的控制臺窗口,在它里面敲入的任何命令都會回顯在集群中的所有機器上,在這個例子中是“Test1”和“Test2”,必要時,你也可以登錄到.csshrc文件中未列舉的機器,使用的命令是cssh –l <用戶名> <機器名1> <機器名2> <機器名3>。
如果我想向終端發(fā)送點什么,只需要點擊目標Xterm,切換焦點,輸入想要的內(nèi)容即可。ClusterSSH提供了許多有用的菜單項,在管理混合型機器環(huán)境時特別有效,如下圖所示,在ClusterSSH控制臺的“Hosts”菜單中,有許多方便的選項可以調(diào)節(jié)。
“Retile Windows”選項只有當你手動調(diào)整了窗口大小或移動了位置時才會顯示,如果你想添加其它機器或集群到運行中的ClusterSSH會話中,“Add Host(s) or Cluster(s)”就派上用場了。***,你將會在“Hosts”菜單的底部看到每個主機的列表,通過主機名前的復選框,你可以選擇ClusterSSH控制臺在那臺機器上執(zhí)行,如果你想排除某臺主機,這個功能特別管用。***我想介紹的是位于“Send”菜單下的“Hostname”選項,它可以在命令行中回顯每臺機器的主機名,相信你一定會用得著。
圖 2: 調(diào)整大小窗口
使用ClusterSSH時需小心
和許多UNIX工具一樣,如果你不小心使用ClusterSSH,它也可能會犯下可怕的錯誤,我就曾看到過因Apache配置文件文字輸入和排版的一個小失誤,導致全部Web服務器當?shù)舻氖鹿剩驗镃lusterSSH老老實實地傳播了錯誤,特別是用特權(quán)用戶操作ClusterSSH時更應該小心,一個小小的錯誤可能會引起巨大的損失,請謹記,在按下回車鍵之前,一定要仔細檢查你所做的一切。
小結(jié)
ClusterSSH不是配置管理系統(tǒng)的代替品,也不能代替管理多臺機器時的***實踐,但如果你需要在這些常用工具箱或程序之外做一些事情,或你在執(zhí)行一些標準性工作,ClusterSSH是不可缺少的,當你需要在多臺機器上重復執(zhí)行相同的任務時,它可以為你節(jié)省大量的時間,但和任何強大的工具一樣,如果使用不當,也會帶來許多危險。
【51CTO.com譯文,轉(zhuǎn)載請注明原文作譯者和出處。】
原文名:Managing Multiple Linux Servers with ClusterSSH 作者:Bill Childers
【編輯推薦】