1. 程式人生 > 其它 >[喵咪Liunx(5)叢集管理利器pssh

[喵咪Liunx(5)叢集管理利器pssh

[喵咪Liunx(5)叢集管理利器pssh

前言

哈嘍大家好呀!大家在管理伺服器的時候如果只是一兩臺還好,當你管理三臺以上的伺服器的時候,你安裝任何一個軟體更改任何一個配置檔案就要無比麻煩的每一臺機器都去執行命令(當然用docker等的請無視),pssh可以幫我們解決這些問題,可以吧準備好的指令碼批量在所有機器上進行執行,幫助你批量管理伺服器叢集!

附上:

喵了個咪的部落格:w-blog.cn

pssh官網地址:http://www.theether.org/pssh/

1. 安裝

pssh和monit的安裝方式一樣簡單都可以通過yum安裝即可

yum install pssh

然後我們需要吧我們的伺服器叢集建立好一個檔案存起來,推薦存放在/usr/loca/pssh下建立一個hostname的檔案,加入如下內容

[user@]host[:port]
#例子(預設root使用者22埠):
root@localhost:22

2. 使用

使用pssh -i -h hostname "env"就可以在hostname中的所有伺服器上執行env命令(ssh-key被信任的情況下否則需要加 -A 會需要輸入密碼)

注意:通過ssh連線一下儲存一下key不然會異常

通過一下命令參考

-h 執行命令的遠端主機列表  或者 -H user@ip:port  檔案內容格式[user@]host[:port]
-l 遠端機器的使用者名稱
-p 一次最大允許多少連線
-o 輸出內容重定向到一個檔案
-e 執行錯誤重定向到一個檔案
-t 設定命令執行的超時時間
-A 提示輸入密碼並且把密碼傳遞給ssh
-O 設定ssh引數的具體配置,參照ssh_config配置檔案
-x 傳遞多個SSH 命令,多個命令用空格分開,用引號括起來
-X 同-x 但是一次只能傳遞一個命令
-i 顯示標準輸出和標準錯誤在每臺host執行完畢後
-I 讀取每個輸入命令,並傳遞給ssh程序 允許命令指令碼傳送到標準輸入

3. 場景

那麼在什麼場景下面我們需要pssh來幫助我們完成常用的shell操作呢?

統一環境

在一般的中小公司伺服器管理下最大的問題就是環境統一問題,這個伺服器nginx你裝的是1.9,3,那個伺服器裝的是2.0.1,然後這個問題在長時間維護中就會無限放大,當別人接過幾次手了之後就更慘了,所以所有所有的伺服器從感覺的伺服器開始同使用pssh統一配置安裝等都可以統一起來不會有特別麻煩的相容問題!

伺服器維護

比如在上線的時候伺服器需要關閉對外伺服器你可能需要關閉外部訪問,這個時候要是伺服器比較或也不可能登入每一臺伺服器進行關閉,這個時候使用pssh就可以很好地統一關閉服務或者切換到升級頁面(用docker也要解決這個問題)

4. 總結

pssh總之是一個非常好用的工具,在很多場景都能起到很好的叢集伺服器管理的作用,大家GET到了嗎?

注:筆者能力有限有說的不對的地方希望大家能夠指出,也希望多多交流!