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