本文中提到的omnitty这个工具,使用起来真是太爽了,可以一次性管理多台服务器!
假若今天我同時裝好了50台主機好了,不論安裝方式是網路安裝或是硬碟拷貝,反正裝好後每台的ip與主機名稱都不相同,而root的密碼相同。
第一個問題,我該如何快速地建立好50組ssh的認證,讓我可以快速的登入每一台的root?這部分請參考【ssh-copy-id】的方式來快速達成,應該只要一個迴圈、很多yes(首次建立ssh連線需要)以及重複貼上很多次的root密碼就可以完成,更快的方法其實可以寫成一隻script就完成了!若是用windows client的連線軟體可就沒那麼方便囉~
第二個問題,我該如何快速的部屬50台的主機,包含安裝多個相同的軟體,以及設定好相關config?第二個問題我還是得先完成第一個問題的解答,之後再利用批次的模式加入我電腦(windows)主機的ssh認證資訊,再利用【Xshell】設定後再複製設定檔,然後慢慢的龜龜的改完每一筆設定的主機名稱和IP,完成之後同時連線50台主機,利用Xshell的【To All Sessions】的command模式,這樣就可以達成同時一對多的同步設定。
Xshell 在使用command模式上是沒有問題的,不過對於一些特殊用法就無法支援,譬如我常常寫入一個檔案會利用cat >的方式,之後以Ctrl+D來結束,但是Xshell並無法同時對多台主機執行Ctrl+D;二來在vi的模式中也無法收到Esc的指令,等於我 無法同時編輯多台主機的檔案,當然其實以上的障礙還是有其他方法可以解決,譬如同時一起scp遠端已經完成的設定檔,需要編輯設定檔的問題就解決了。
而今天分享的這款軟體【Omnitty】,也可以同時對多台主機下指令,達到同時設定多台主機的目的,而且他比Xshell更好,沒有編輯檔案的問題,若是妥善使用的確可以達到事半功倍的效果。
Omnitty SSH multiplexer
官方網站:http://omnitty.sourceforge.net/
下載網址:http://omnitty.sourceforge.net/download.html
主 要是要安裝【libROTE】這個Library與【Omnitty】主程式,安裝方式不外乎就是./configure && make && make install這樣簡單,安裝的方式就不特別交代了!安裝後直接執行omnitty可能會遇到找不到library的問題〔omnitty: error while loading shared libraries: librote.so.0: cannot open shared object file: No such file〕,因為預設是安裝在/usr/local/lib內,此時可以在/etc/ld.so.conf.d/下寫入一個omnitty.conf的檔案,內容寫入/usr/local/lib即可,之後重新執行ldconfig,完成之後重新執行omnitty應該就可以正常運作了!
進入omnitty後的介面簡單分為三塊,左方為連線主機的選取區,右邊則為連線的操作區,而下方藍色一條為程式的快速鍵說明。新增一個連線請按F5,此時輸入主機名稱或是IP,我個人是習慣將ssh連線主機設定在config檔案(連線別名),連線時只需要輸入alias name即可,這樣一來連線時就沒有帳號以及ssh port的問題。
新增多台主機之後可以利用F2/F上下切換不同的主機。在這裡額外提醒一點,此時新增的主機omnitty並不會幫你自動儲存,也就是說每一次進入omnitty後需要自己額外的新開連線,就性質上比較偏向多工的ssh連線軟體,而非ssh連線的管理軟體。
回 到我們該如何批次的設定50台主機,我們先將50台的主機名稱或是IP寫在一個檔案,一行一個主機,檔案必須在你當前執行omnitty的同一個目錄下, 開啟omnitty之後點選F5新增主機,此時利用【@檔案】的方式就可以一次連線到50台的主機,若50台主機的認證都是完善的,理論上每一台應該都會 通才是!
那麼到底該如何同時對多台主機執行指令呢?此時我們必須對每一台主機進行一個「tag」的動作,利用F2/F3選取主機之後再點選F4,此時主機將會多一個*號並且顯示成綠色,這些被標記主機就被設定為可以輸入相同的指令。
而一次要標記50台主機可以先進入F1的軟體選單,再按下t即可,我們要將50台要同時設定的主機都標記起來。
要開始批次安裝軟體及設定主機則按下F7,這時候會進入!!! MULTICAST MODE !!!的模式,此時隨意在某一台主機敲指令都可以,50台主機執行的動作將會一模一樣,所以50台主機的環境最好都一模一樣,避免會有意外的情形發生。
讓我在某一台主機執行一個小小的迴圈並且輸出結果。
再切換到其他主機去查看也是相同的結果,此方式不只利用在command,而vi的編輯也完全沒有問題,同時設定50台主機的問題就迎刃而解了,這樣的工具除了用在批次安裝設定主機之外,若管理的機器也有同質的動作需要執行,那麼這軟體也可以成為有力的助手。而就算不使用!!! MULTICAST MODE !!!的功能,當成一個簡易的介面管理主機其實也很方便啦!有興趣的人可以試試看唷!
Omnitty软件可以实现同时连接多台主机并执行命令的功能,以下是安装方法
1.登陆http://omnitty.sourceforge.net/下载对应的压缩包rote-0.2.8.tar.gz和omnitty- 0.3.0.tar.gz 其中rote-0.2.8.tar.gz为编译omnitty-0.3.0.tar.gz的环境,需要先安装
2.下载的两个压缩包解压后均可通过confgure、make&&make install的安装方法成功安装.
3.两个压缩包中的内容均解压安装完毕之后,需要在/etc/ld.so.conf中加入如下信息方可以正常使用Omnitty软件
/usr/lib/rfmin/lib
/usr/lib/icc
/usr/local/lib
修改完配置文件后执行 exec ldconfig 重新加载后即可正常使用
4.该软件打开后F5添加需要被控制的主机,格式以及流程为 root@ip 密码
添加完被控端主机后F1选择标记全部被控端,然后F7选择muticast mode后即可同时批量在多台被控端主机上执行命令
另外,可以将被控端主机信息按照以下格式存入文件,并在F5时按照 “Add:/home/test.txt” 的格式批量添加
root@192.168.0.1
root@192.168.0.2
root@192.168.0.3
root@192.168.0.4
导入主机信息后需要使用F2和F3来切换被控端来依次输入密码...