Linux運維利器之ClusterShell


一、簡介

實驗室機房有大概百台的服務器需要管理,加上需要搭建Hadoop以及Spark集群等,因此,一個輕量級的集群管理軟件就顯得非常有必要了。經過一段時間的了解以及嘗試,最終選擇了clustershell這個軟件,原因如下:
1、安裝方便。一條指令就能輕松安裝。
2、配置方便。很多集群管理軟件都需要在所有的服務器上都安裝軟件,而且還要進行很多的連接操作。
clustershell就相當的方便了,僅僅需要所有機器能夠ssh無密碼登錄即可,然后只在一台服務器上安裝clustershell即可。
3、使用方便。clustershell的命令相對來說非常簡單,只有一兩個指令以及三四個參數需要記。

二、安裝

1.安裝clustershell

安裝非常簡單,只有一條指令即可,一般服務器都是紅帽系列的,使用yum安裝。
yum install clustershell  

 

配置文件:/etc/clustershell/    下

假設我們配置了一個db組,包含ssy-[1-3]三個節點:

shell> cat /etc/clustershell/groups
db: ssy-01 ssy-02 ssy-03

准備就緒,順着文章開頭的例子說:查詢所有數據庫服務器當前的負載情況:

shell> clush -b -g db "uptime"

2、參數

clustershell在使用的時候有一個非常重要的指令就是clush,目前為止我也只用到了這一個指令。
clush [-option] 后面就是日常的linux上執行的指令即可,沒什么復雜的,都十分簡單。
但是有一點要注意,clustershell執行的類似與一次操作的指令,比如你可以touch一個新文件在所有節點上,但是你不能同時在所有節點上vim編輯一個新文件。細節還需琢磨。
clush有幾個比較重要的參數:
-b : 相同輸出結果合並
-w : 指定節點
-a : 所有節點
-g : 指定組
--copy : 群發文件

 

3.配置ssh無密碼登錄

如果沒有事先生成ssh密匙的話,需要先生成:

shell> ssh-keygen

 

可選操作:為了方便,我們可以給需要登錄的服務器起一個可讀性更好的別名,如果你做了類似的操作,那么后面的<USER>@<SERVER>都可以換成對應的<HOST>:

shell> cat ~/.ssh/config
Host db_1
Hostname <SERVER>
User <USER>
Port <PORT>

Host db_2
Hostname <SERVER>
User <USER>
Port <PORT>

Host db_3
Hostname <SERVER>
User <USER>
Port <PORT>

 

然后把生成的公鑰添加到需要登錄的服務器指定位置:

shell> cat ~/.ssh/id_rsa.pub | ssh <USER>@<SERVER> "cat - >> ~/.ssh/authorized_keys"

 

如果你和我一樣總記不清如何正確拼寫authorized_keys,可以接着學一下ssh-copy-id的用法,這個命令可以讓操作更簡單點:

shell> ssh-copy-id -i ~/.ssh/id_rsa.pub "<USER>@<SERVER>"

 

注:每配置好一台免密碼登錄的服務器,最好手動實際操作一下,因為第一次連接會要求手動確認是否保存信息到~/.ssh/known_hosts文件。

3.配置關鍵文件

clustershell的配置文件在/etc/clustershell目錄下,其中的groups是最常用的,我只配置了這一個文件。
 
其中all這一項后面添加的是所有的節點。

三、官方文檔

https://sourceforge.net/projects/clustershell/?source=navbar
 
 
clustershell還有很多功能,但是需求驅動學習,目前我能用到的功能在上面體現了,有需求的話會再學習深一點。上傳一個官方文檔,有深入學習clustershell,可以下載一下。
http://download.csdn.net/detail/picassolovecoding/8073989
有更好玩的功能可以互相交流。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM