前言
如今,分布式系統大家已經司空見慣了。但面對那么多臺機器同時操作、管理時可能還是處于原始狀態。工欲善其事,必先利其器。今天給大家介紹一個工具,可以讓我們一次遠程操作很多臺機器。
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.
官方網址:猛戳這里。
源碼地址:git://repo.or.cz/polysh.git
2. 準備
Polyshis written in Python and requires Python ≥ 2.4.
MacOS操作系統已自帶Python環境,核對版本即可。若沒有配置,請手工安裝:brew install python。(如果你還不知道brew是什么,請移步這里)
Windows操作系統,請自行安裝、配置。→傳送門
對于企業來說,為了生產環境的相對安全,往往需要先登錄跳板機(或叫堡壘機),對開發或測試環境可能相對訪問自由一些。
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=~
(版本號選用請參照官網的Release List)
特殊說明一下home參數,若生產機器環境有嚴格權限管理,我們需要指定到登錄者的home目錄下進行安裝,否則會導致安裝失敗?;虿恢付ㄔ搮档脑?,安裝后命令文件會出現在/bin/polysh和/usr/local/bin/polysh
4. 配置
1)為了方便使用,將polysh配置到系統變量中(選用)
成功安裝后,會在home參數配置的目錄下生成bin目錄(按照上述步驟即~/bin)和其目錄下的polysh指令文件。我們將該bin目錄配置到~/.bash_profile文件中PATH路徑里。
2)配置免密登錄(選用)
這種配置避免了連接多臺機器時對各機器密碼的管理,達到更高效的便捷使用。我們需要把polysh所在機器的~/.id_rsa.pub內容配置到所需連接的機器上來完成免密登錄。
通過“man ssh-keygen”命令來獲得ssh-keygen的命令手冊。
如果本機不存在~/.ssh/id_rsa.pub文件,需通過“ssh-keygen -t rsa”來創建本機的公私鑰文件。(默認生成無需輸入任何參數,三次回車即可)
執行后,id_rsa(私鑰文件)和id_rsa.pub(公鑰文件)出現在~/.ssh/文件夾下。
將id_rsa.pub內容復制在其他連接機器的./ssh/authorized_keys文件中。若不存在依據上述步驟創建。
如果希望ssh公鑰生效需滿足至少下面兩個條件:
.ssh目錄的權限必須是700
.ssh/authorized_keys文件權限必須是600
~/.ssh/目錄下的文件說明:
authorized_keys —— 存放遠程免密登錄的公鑰,主要通過這個文件記錄多臺機器的公鑰。
id_rsa?——?生成的私鑰文件。
id_rsa.pub?——?生成的公鑰文件。
know_hosts?——?已知的主機公鑰清單。
5. 使用
1) 創建~/host.list
#ip或域名
127.0.0.1
localhost
2) 編寫執行腳本~/login.sh
#!/bin/sh
polysh --hosts-file=host.list
#./polysh-0.4/polysh.py --hosts-file=host.list
3)執行~/login.sh