前言
如今,分布式系統(tǒng)大家已經(jīng)司空見慣了。但面對那么多臺機器同時操作、管理時可能還是處于原始狀態(tài)。工欲善其事,必先利其器。今天給大家介紹一個工具,可以讓我們一次遠程操作很多臺機器。
1. 介紹
Polysh is a tool to aggregate several remote shells into one. It is used to launch an interactive remote shell on many machines at once.
官方網(wǎng)址:猛戳這里。
源碼地址:git://repo.or.cz/polysh.git
2. 準備
Polyshis written in Python and requires Python ≥ 2.4.
MacOS操作系統(tǒng)已自帶Python環(huán)境,核對版本即可。若沒有配置,請手工安裝:brew install python。(如果你還不知道brew是什么,請移步這里)
Windows操作系統(tǒng),請自行安裝、配置?!?a target="_blank" rel="nofollow">傳送門
對于企業(yè)來說,為了生產(chǎn)環(huán)境的相對安全,往往需要先登錄跳板機(或叫堡壘機),對開發(fā)或測試環(huán)境可能相對訪問自由一些。
3. 安裝
選擇一臺合適的機器進行polysh工具的安裝。
wget http://guichaz.free.fr/polysh/files/polysh-0.4.tar.gz
tar -zvxf polysh-0.4.tar.gz
cd polysh-0.4
python setup.py install --home=~
(版本號選用請參照官網(wǎng)的Release List)
特殊說明一下home參數(shù),若生產(chǎn)機器環(huán)境有嚴格權(quán)限管理,我們需要指定到登錄者的home目錄下進行安裝,否則會導致安裝失敗?;虿恢付ㄔ搮?shù)的話,安裝后命令文件會出現(xiàn)在/bin/polysh和/usr/local/bin/polysh
4. 配置
1)為了方便使用,將polysh配置到系統(tǒng)變量中(選用)
成功安裝后,會在home參數(shù)配置的目錄下生成bin目錄(按照上述步驟即~/bin)和其目錄下的polysh指令文件。我們將該bin目錄配置到~/.bash_profile文件中PATH路徑里。
2)配置免密登錄(選用)
這種配置避免了連接多臺機器時對各機器密碼的管理,達到更高效的便捷使用。我們需要把polysh所在機器的~/.id_rsa.pub內(nèi)容配置到所需連接的機器上來完成免密登錄。
通過“man ssh-keygen”命令來獲得ssh-keygen的命令手冊。

如果本機不存在~/.ssh/id_rsa.pub文件,需通過“ssh-keygen -t rsa”來創(chuàng)建本機的公私鑰文件。(默認生成無需輸入任何參數(shù),三次回車即可)

執(zhí)行后,id_rsa(私鑰文件)和id_rsa.pub(公鑰文件)出現(xiàn)在~/.ssh/文件夾下。
將id_rsa.pub內(nèi)容復制在其他連接機器的./ssh/authorized_keys文件中。若不存在依據(jù)上述步驟創(chuàng)建。
如果希望ssh公鑰生效需滿足至少下面兩個條件:
.ssh目錄的權(quán)限必須是700
.ssh/authorized_keys文件權(quán)限必須是600
~/.ssh/目錄下的文件說明:
authorized_keys —— 存放遠程免密登錄的公鑰,主要通過這個文件記錄多臺機器的公鑰。
id_rsa?——?生成的私鑰文件。
id_rsa.pub?——?生成的公鑰文件。
know_hosts?——?已知的主機公鑰清單。
5. 使用
1) 創(chuàng)建~/host.list
#ip或域名
127.0.0.1
localhost
2) 編寫執(zhí)行腳本~/login.sh
#!/bin/sh
polysh --hosts-file=host.list
#./polysh-0.4/polysh.py --hosts-file=host.list
3)執(zhí)行~/login.sh
