前言
如今洽故,分布式系統(tǒng)大家已經(jīng)司空見(jiàn)慣了。但面對(duì)那么多臺(tái)機(jī)器同時(shí)操作盗誊、管理時(shí)可能還是處于原始狀態(tài)收津。工欲善其事,必先利其器浊伙。今天給大家介紹一個(gè)工具撞秋,可以讓我們一次遠(yuǎn)程操作很多臺(tái)機(jī)器。
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. 準(zhǔn)備
Polyshis written in Python and requires Python ≥ 2.4.
MacOS操作系統(tǒng)已自帶Python環(huán)境吻贿,核對(duì)版本即可。若沒(méi)有配置哑子,請(qǐng)手工安裝:brew install python舅列。(如果你還不知道brew是什么,請(qǐng)移步這里)
Windows操作系統(tǒng)卧蜓,請(qǐng)自行安裝帐要、配置∶旨椋→傳送門(mén)
對(duì)于企業(yè)來(lái)說(shuō)榨惠,為了生產(chǎn)環(huán)境的相對(duì)安全,往往需要先登錄跳板機(jī)(或叫堡壘機(jī)),對(duì)開(kāi)發(fā)或測(cè)試環(huán)境可能相對(duì)訪(fǎng)問(wèn)自由一些赠橙。
3. 安裝
選擇一臺(tái)合適的機(jī)器進(jìn)行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=~
(版本號(hào)選用請(qǐng)參照官網(wǎng)的Release List)
特殊說(shuō)明一下home參數(shù),若生產(chǎn)機(jī)器環(huán)境有嚴(yán)格權(quán)限管理期揪,我們需要指定到登錄者的home目錄下進(jìn)行安裝掉奄,否則會(huì)導(dǎo)致安裝失敗》镅Γ或不指定該參數(shù)的話(huà)姓建,安裝后命令文件會(huì)出現(xiàn)在/bin/polysh和/usr/local/bin/polysh
4. 配置
1)為了方便使用,將polysh配置到系統(tǒng)變量中(選用)
成功安裝后缤苫,會(huì)在home參數(shù)配置的目錄下生成bin目錄(按照上述步驟即~/bin)和其目錄下的polysh指令文件速兔。我們將該bin目錄配置到~/.bash_profile文件中PATH路徑里。
2)配置免密登錄(選用)
這種配置避免了連接多臺(tái)機(jī)器時(shí)對(duì)各機(jī)器密碼的管理榨馁,達(dá)到更高效的便捷使用憨栽。我們需要把polysh所在機(jī)器的~/.id_rsa.pub內(nèi)容配置到所需連接的機(jī)器上來(lái)完成免密登錄。
通過(guò)“man ssh-keygen”命令來(lái)獲得ssh-keygen的命令手冊(cè)翼虫。
如果本機(jī)不存在~/.ssh/id_rsa.pub文件屑柔,需通過(guò)“ssh-keygen -t rsa”來(lái)創(chuàng)建本機(jī)的公私鑰文件。(默認(rèn)生成無(wú)需輸入任何參數(shù)珍剑,三次回車(chē)即可)
執(zhí)行后掸宛,id_rsa(私鑰文件)和id_rsa.pub(公鑰文件)出現(xiàn)在~/.ssh/文件夾下。
將id_rsa.pub內(nèi)容復(fù)制在其他連接機(jī)器的./ssh/authorized_keys文件中招拙。若不存在依據(jù)上述步驟創(chuàng)建唧瘾。
如果希望ssh公鑰生效需滿(mǎn)足至少下面兩個(gè)條件:
.ssh目錄的權(quán)限必須是700
.ssh/authorized_keys文件權(quán)限必須是600
~/.ssh/目錄下的文件說(shuō)明:
authorized_keys —— 存放遠(yuǎn)程免密登錄的公鑰,主要通過(guò)這個(gè)文件記錄多臺(tái)機(jī)器的公鑰别凤。
id_rsa?——?生成的私鑰文件饰序。
id_rsa.pub?——?生成的公鑰文件。
know_hosts?——?已知的主機(jī)公鑰清單规哪。
5. 使用
1) 創(chuàng)建~/host.list
#ip或域名
127.0.0.1
localhost
2) 編寫(xiě)執(zhí)行腳本~/login.sh
#!/bin/sh
polysh --hosts-file=host.list
#./polysh-0.4/polysh.py --hosts-file=host.list
3)執(zhí)行~/login.sh