Cluster ssh (cssh)是一個實用程序,它允許你從一個管理控制臺通過ssh管理多個服務(wù)器。它最初的設(shè)計是為了與組成HPC(高性能計算)集群的多個節(jié)點一起工作。這些節(jié)點通常配置相同,因此需要在每個節(jié)點上運行相同的管理命令。使用Cluster ssh允許管理員在一個控制臺中鍵入一個命令,并將其復(fù)制到許多系統(tǒng)上。
作為一個SysAdmin,這個工具可以大大節(jié)省時間。在本文中,我們將討論如何安裝、配置和使用Cluster ssh。
如何安裝Cluster ssh
Cluster ssh的安裝非常簡單,并且在大多數(shù)Linux發(fā)行版上都可以使用。使用您的軟件包管理器使安裝變得簡單和快速。
Fedora安裝Cluster ssh
sudo dnf install clusterssh -y
sudo yum install clusterssh -y
sudo apt-get install clusterssh
如何配置Cluster ssh
HPC集群管理員經(jīng)常會有非常復(fù)雜的配置,涉及多個不同的文件、標(biāo)簽和選項。這樣復(fù)雜的配置不在本文的討論范圍內(nèi)(見資源部分)。
Cluster ssh可以通過它的全局配置文件,或者用戶特定的配置文件進(jìn)行配置。這兩個文件使用相同的格式,唯一的區(qū)別是一個影響所有用戶,另一個是特定于一個用戶。在本教程中,我們將對用戶配置進(jìn)行全部修改。
為了保證本文的精確性,我們將重點介紹最常用的配置,以便讓您快速上手和運行。
全局配置文件
有三個全局配置文件。其中兩個更像是映射文件(如/etc/hosts或/etc/auto.master),而不是實際的配置文件。
/etc/clusters – 包含一個標(biāo)簽(群集名稱)和映射到指定標(biāo)簽的主機的列表。
/etc/tags – 與 /etc/clusters 的邏輯相反。這允許您指定一個主機作為多個標(biāo)記(群集)的成員。
/etc/csshrc – 此文件包含默認(rèn)配置覆蓋。
用戶特定的配置文件: /etc/csshrc – 這個文件包含默認(rèn)的配置覆蓋。
還有三個用戶特定的文件直接映射到全局文件。
$HOME/.clusterssh/clusters – 用戶特定版本的/etc/clusters。
$HOME/.clusterssh/tags – 用戶特定版本的/etc/tags。
$HOME/.clusterssh/config – 用戶對/etc/csshrc的特定版本。
配置群集文件
/etc/clusters (全局) 或 $HOME/.clusterssh/clusters (用戶專用)
群集文件的格式只是一個標(biāo)簽(群集名稱),后面是所述群集中的主機名稱,每個名稱之間用空格隔開。
舉個例子,比如說我們有六臺服務(wù)器,其中兩臺是開發(fā)服務(wù)器,四臺是生產(chǎn)服務(wù)器。兩臺是開發(fā)服務(wù)器,四臺是生產(chǎn)服務(wù)器。我們可以指定標(biāo)簽 “dev”,然后列出開發(fā)服務(wù)器。然后對生產(chǎn)服務(wù)器進(jìn)行同樣的操作。
下面是一個例子集群文件。
# Development servers
dev savona@centosdev savona@fenrir
# Production Servers
prod savona@putorweb1 savona@putorweb2 savona@putorweb3 savona@putorweb4
注意:添加用戶名(user@host)是可選的。你可以在命令行中指定用戶名。如果你的用戶名在所有系統(tǒng)上都是一樣的,你可以完全排除它。
現(xiàn)在我們已經(jīng)創(chuàng)建了Cluster文件,我們只需使用標(biāo)簽為列出的兩臺開發(fā)服務(wù)器打開終端即可。
[savona@putor ~]$ cssh dev
上面的命令將打開兩個XTerm窗口,每個開發(fā)服務(wù)器在dev標(biāo)簽后列出一個。
配置標(biāo)簽文件
/etc/tags (全局) 或 $HOME/.clusterssh/tags (用戶專用)
如上所述,標(biāo)簽文件使用簇文件的相反格式。在標(biāo)簽文件中,您有一個主機,后面跟著一個或多個標(biāo)簽,每個標(biāo)簽之間用空格分隔。這允許對集群進(jìn)行更精細(xì)的控制。
在這個例子中,假設(shè)我們想按服務(wù)器的操作系統(tǒng)和位置來分組。我們可以用一個主機開始行,然后列出該主機應(yīng)該關(guān)聯(lián)的標(biāo)簽(Cluster)。這樣,我們就可以輕松地指定一個主機為多個標(biāo)記(Cluster)的成員。
下面是一個按操作系統(tǒng)和位置來劃分主機的例子。
savona@putorweb1 centos phila
savona@putorweb2 redhat denver
savona@putorweb3 redhat phila
savona@putorweb4 centos denver
我們有效地讓主機putorweb1成為兩個集群的成員。一個叫 centos,另一個叫 phila。現(xiàn)在我們可以通過這樣的標(biāo)簽連接到數(shù)據(jù)中心的所有主機。
[savona@putor ~]$ cssh phila
Opening to: savona@putorweb1 savona@putorweb3
同樣,我們也可以使用 centos 標(biāo)簽連接到所有的 centos 系統(tǒng)。
Opening to: savona@putorweb1 savona@putorweb4
集群ssh配置文件
/etc/csshrc (全局)或$HOME/.clusterssh/config (用戶專用)
主配置文件提供了一種覆蓋程序默認(rèn)行為的方法,其格式與其他配置文件類似,每行一個選項和值。其格式與其他配置文件類似,每行一個選項和值。下面是一個配置文件的例子。
# Close terminal window after 3 seconds
auto_close = 3
# Set initial console position
console_position = +0+200
# Hide console menu
hide_menu = 1
有關(guān)選項的完整列表,請參見資源部分的man頁面。
Cluster ssh的基本用法
使用Cluster SHH很簡單,完全可以不用配置。
如您在上面的屏幕快照中所見,我們通過運行以下命令登錄了兩臺服務(wù)器:
cssh savona@fenrir savona@centosdev
也可以這樣縮短:
cssh -l savona fenrir centosdev
然后,Cluster ssh打開兩個XTerm窗口,對于作為參數(shù)提供的每個主機,一個窗口。它還打開了一個管理控制臺,您可以在其中輸入將在XTerm窗口中重復(fù)的命令。
如果您只想在特定主機中輸入內(nèi)容,就像單擊該窗口一樣簡單。您可以單擊返回管理控制臺以繼續(xù)將擊鍵發(fā)送到所有終端窗口。
使用標(biāo)簽連接到服務(wù)器組
我們已經(jīng)在配置部分談到了使用標(biāo)簽(集群名稱)。要連接到集群文件或標(biāo)簽文件中定義的系統(tǒng),只需調(diào)用cssh和標(biāo)簽名稱。
[ savona @ putor?] $ cssh prod
注意:使用前,必須在集群文件或標(biāo)簽文件中配置標(biāo)簽。(請參閱上面的配置Cluster ssh)
Cluster ssh的管理控制臺
管理控制臺頂部有幾個菜單項。它們具有一些有用的選項,可以提高您的Cluster ssh效率。
在文件菜單中,您將找到顯示歷史記錄。目的很明顯,但位置卻不顯眼。這將放下一個小窗口,并向您顯示鍵入命令的歷史記錄。
“主機”菜單提供諸如“重新平鋪窗口”之類的選項,如果您移動,添加或刪除了主機,它們將重新平鋪窗口。它還具有使某些窗口(或會話)處于活動狀態(tài)或非活動狀態(tài)的選項。在此菜單的最底部,還列出了當(dāng)前打開的主機,您可以將它們切換為活動或不活動。將主機設(shè)置為非活動狀態(tài)可保持會話打開,但是您在管理控制臺中鍵入的任何內(nèi)容都不會發(fā)送到該會話。
使用“發(fā)送”菜單可以發(fā)送諸如遠(yuǎn)程主機名,用戶名,隨機數(shù)等之類的內(nèi)容。這些項目在每個會話中可能有所不同,因此可以簡化此操作。(可選)可以通過添加$HOME/.clusterssh/send_menu文件來更改此菜單。
您可以使用命令行選項進(jìn)一步個性化您的連接。以下是一些受歡迎的選項:
根據(jù)主機指定用戶
您可以使用-l(–username)選項指定要使用的用戶。
cssh -l username host1
當(dāng)您要使用不同的用戶帳戶快速連接到多個系統(tǒng)時,這非常方便。簡單地多次提供基本的ssh語法[用戶名] @ [主機],如下所示:
cssh savona@putorius ninja@putordb dax@defiant
注意:某些群集或標(biāo)記文件配置可能會破壞此功能。如果它沒有按預(yù)期工作,請檢查您的文件。
登錄后運行命令
您可以使用-a(-action)選項在登錄時運行命令。例如,運行who命令以查看是否還有其他人登錄。
cssh -a ‘who’ host1 host2
調(diào)整終端窗口的大小以填充屏幕
您可以使用–fillscreen選項來調(diào)整窗口大小以使用整個屏幕。
cssh –fillscreen host1 host2 host3
您可以使用下面的資源部分中的鏈接找到命令行選項的完整列表。
編輯配置文件時應(yīng)格外注意。即使您認(rèn)為所有系統(tǒng)上的文件都是相同的,也可以使用單個注釋或空白行來刪除行號。
注意,在提交之前,請仔細(xì)檢查您的輸入和配置。很容易陷入麻煩。
Cluster ssh是用于系統(tǒng)管理的功能強大的工具。即使現(xiàn)在,當(dāng)我們繼續(xù)使用諸如Puppet和Ansible之類的工具進(jìn)行配置管理時,我仍然可以找到很好的ole cssh的用途。
在本文中,我們涵蓋了您入門所需的大部分內(nèi)容。我們討論了安裝和配置Cluster ssh以及一些用法示例。如果您有任何評論,問題或恐怖故事,我們很樂意在評論中聽到。