close

CheungSSH的優點
1、操作簡單
2、功能實用
3、無需安裝任何插件
4、提供技術支持
5、授權免費使用
功能大綱
1. 批量分發命令
2. 批量上傳文件
3. 批量下載文件
4. 批量部署項目
5.本地腳本遠程運行
更多功能,請參見《CheungSSH發布手冊.docx》
本程序已經開放源碼!如果您對此軟件感興趣,請到GitHub下載,完全免費使用,並且永久免費
下載方式
(1) 在您的瀏覽器地址欄輸入: https://github.com/zhangqichuan/CheungSSH/tree/CheungSSH
(2) 現在您將看到如下頁面:             
(3) 點擊Download ZIP就可以了,然後您可以unzip  CheungSSH.zip 解壓即可!
#QQ  :     2418731289
如果您覺得這個軟件不錯, 也可以與我合作研究!
在這裏先簡單介紹一下我的這個程序與Ansible的優勢:
比Ansible的使用更簡單,尤其是配置方面!而Ansible有的功能, 我的這個程序一樣有,和Ansible一樣是python開發, 所以跟Ansible的模式一樣, 但是CheungSSH 操作更簡單!配置更輕量!輸出顯示更人性化!而且,可以專門為您做二次開發,對企業的自動化需求量身定做!
您可以大致的看下功能表,即可了解本軟件的功能
功能表:
1    名稱
功能解釋    本軟件    
2    批量分發命令
在您的本地輸入一條命令,程序將會自動把這些命令發送給遠程多個服務器執行
支持
3    批量上傳文件
在您的本地執行獲取遠程服務器的文件到本地,原理跟SFTP一樣,但是這裏是多個服務器同時執行SFTP
支持
4    批量下載文件(正則匹配)
在您的本地執行上傳遠程服務器的文件到遠程服務器,原理跟SFTP一樣,但是這裏是同時為多個服務器執行SFTP,並且支持正則表達式的匹配,比如,您想下載服務器上Tomcat在5月~8月的日誌到本地查看: tomcat/logs2015-0[5-8].*.log
支持
5    多線程
為多個服務器同時執行,這樣能減少執行的時間,加快執行效率,尤其是在服務器較多的情況下
支持
6    自定義輸出格式
為了更人性化的顯示執行結果, 您可以自行編寫一個腳本對結果內容進行重新格式化輸出,只為了方便您的查看
支持
7    格式化日誌入庫
程序執行的命令和結果,都將寫入日誌文件中,加入您在每天早上要執行巡檢CPU MEM  IO  DISK 的信息,比如命令:df -h|grep '/' 得到結果 96% ,那麽這些結果都將會格式化的寫入日誌中,同事也省去了您整理輸出信息的時間。提高工作效率
支持    
8    命令結果返回狀態判斷
每個命令執行是否成功,成功了多少, 用時多少,都會顯示
支持
9    su root權限
假如您的服務器只能以普通賬戶登錄,而您平時又是用普通用戶登錄後su  - root執行命令,這裏也支持。
支持
10    結果統計
執行的命令條數,成功數,用時等。
支持
11    自助區分
每個服務器的返回結果,都以特定格式區分開來,方便查看
支持
12    交互界面
可以在程序裏面進行批量發送命令,就像是Linux的shell終端一樣
支持
13    後臺運行    
以命令的方式運行,比如您把命令寫入一個腳本中,然後用crond每天早上為您自動為多個服務器巡檢 .Auto_SSH_Manager_Stand_V71.0.py  <    支持
14    模塊化接口
每個命令功能,都是一樣以模塊執行,所以跟Ansible是一樣的原理,但是我認為比Ansibel更人性化
支持
15    二次開發
有API接口, 如果您想要針對您的工作進行進一步的開發,那麽也是可以的
支持
16    本地腳本在遠程服務器運行(遠程服務器沒有腳本)
您在本地編寫一個腳本,或者是程序,或者是可執行文件,在遠程服務器上事先不需要存在該腳本,而您可以直接在遠程服務器上運行,猶如在普通的Shell終端下,先上傳一個程序文件,然後在遠程服務器上執行,而我們這裏的區別是,無需您手動上傳即可執行
支持
17    自動化巡檢
比如您可以在crontd中編寫一條命令, 定時為您的多個服務器進行巡檢操作,巡檢的結果,將會格式化的寫入本地日誌,提
支持
18    不同文件上傳到不同服務器上
比如您部署Tomcat  Weblogic集群的時候,有可能每一個Tomcat節點的配置文件都不同,那麽可以采用此模式,進行上傳配置文件
開發中    
19    部署模式         
比如您時常部署Tomcat程序 Weblogic程序等,部署的服務器需要部署完成一臺才能進行下一臺的操作。很多企業都是這樣
支持
20    密碼方式登錄
密碼登陸,與Shell一樣    支持
21    密鑰方式登錄
PublicKey登陸,與Shell一樣
支持
22    cd切換目錄    就像在Shell中一樣,可以在與遠程服務器上cd切換路徑    支持    
23    選定執行命令失敗的主機    如果您執行一個命令失敗了,那麽您可以select這些主機,然後針對這些主機運行命令    支持    
24    選定一個或者多個主機    選定一個或者多個主機運行命令    支持    
25    選定主機組    選定一個或者多個主機組運行命令    支持    
實現架構:
一、介紹:
本軟件我(張其川 Cheung Kei-Chuen)使用Python語言開發,為了實現批量的自動化運維工作而開發,與Ansible一樣屬於同種開發語言,當然這個由我自己開發,是我根據工作中的實際使用情況而設計,在使用感知上我認為比Ansible更為人性化,更貼近運維人的使用需求。
該程序不需要任何的插件,不需要安裝客戶端和服務器端,利用的是SSH協議運行。
安裝部署本軟件:(建議首先使用第一種,如果失敗則選用第二種)
第一種方式(自動安裝方式)
[ root ~]#  cd  CheungSSH-master
[ root ~]# ./install-CheungSSH.sh  #這裏用shell腳本為您自動安裝,如果安裝失敗了,您手動安裝,請確保/CheungSSH裏面的程序有x執行權限哦!
第二種方式(手動安裝方式,在第一種方式失敗後,您可以使用這種方式安裝,如果第一種方式成功,那麽久不需要使用這個方式安裝)
假如,您使用自動的安裝方式 ./install-CheungSSH.sh  失敗了,那麽請您使用如下方法手動安裝
第一步: [ root ~]# yum install -y gcc python-devel
第三步 到官網下載pycrypto模塊: wget --no-check-certificate                  https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz
第四步 解壓並安裝: [ root ~]#    tar xvf  pycrypto-2.6.1.tar.gz ;cd pycrypto-2.6.1;python setup.py install
第五步 到官網下載paramiko模塊:[ root ~]#  wget   --no-check-certificate  https://pypi.python.org/packages/source/p/paramiko/paramiko-1.9.0.tar.gz
第六步 解壓並安裝 : [ root ~]#   tar xvf   paramiko-1.9.0.tar.gz ;cd paramiko-1.9.0 ;python setup.py install
如果您已經安裝成功了,那麽下面直接可以運行程序
現在您需要修改一下配置文件,也就是指定程序如何運行,開看下一下配置文件介紹:
[root ~]# ./cheungssh_v115.py  #先執行一下,會生成一些初始化配置文件
CMD>>>>exit    #然後退出,就算部署好了,接下來就可以修改配置文件,就能使用啦!!
[root@1 ~]# more /cheung/conf/cheung.conf   #先看看配置文件哦!
[AUTO_SSH]
Useroot=N
Timeout=3                  # 指定登陸服務器的響應超時時間
RunMode=M               #使用多線程運行程序
#UseKey=n                 # 是否使用密鑰登錄
#Deployment=n         # 是否使用部署模式,比如在更新Tomcat,Apache 的時候,需要逐一進行部署,使用該模式後,                                            程序會結果您指定的日誌信息進行判斷重啟是否成功,如果成功,則自動進行下一個服務器的部                                              署。否則會有提示
#ListenFile=/var/log/messages          #使用了部署模式後,您需要制定一個日誌文件, 讓程序去讀取您指定的關鍵信息
#ListenTime=60                                    #使用了部署模式後,程序讀取您指定的日誌信息時間,默認為60秒鐘,如果在 指                                                                     定時間未讀取到相關信息,則認為部署失敗。
#ListenChar=Server startup               #使用了部署模式後, 您指定的字符信息,如果讀取到這個信息,那麽就認為部署成                              功, 服務器將自動進行下一個部署,比如tomcat中如果出現這個字符,那麽可以                                 認為是啟動成功了的,當然要排除啟動後的一些404,500錯誤。因為這裏只判斷啟動是否成功
配置/cheung/conf/cheung.conf:
配置/cheung/conf/hosts    :
解釋:
第一列:主機地址
第二列:主機的端口
第三列:主機的登陸用戶名
第四列:主機用戶名的密碼,如果您擔心密碼泄露,那麽此處可以填寫None
第五列:su-root的密碼  ,如果您未使用Useroot,此列可以填寫None
以上配置必須有固定的格式,否則程序將無法運行
提示:
如果您在密碼列填寫的是  None ,那麽在您執行命令的時候程序將會詢問您密碼。這樣可以保護安全信息。
使用前請註意:
 由於CheungSSH是批量操作的,所以不支持交互式,比如vi ,top,ping等交互命令,如果您懂得如何取消交互也可以的
詳細的使用手冊,請到GitHub上下載。
演示一、執行一個命令uptime看下各個服務器的運行情況:  (請註意,這裏執行命令,與您在Linux的終端下執行命令是一模一樣!這裏就比Ansible的操作更簡單!)
[root ~]# ./cheungSSH_Manager_Stand_V90_ISSUE.py              #啟動程序,如果您下載的版本不同,請ls   CheungSSH 查看具體的程序名稱
另外,您還能看到的是,每次執行了命令, 我的程序都會統計:用時多少 ? 有多少服務器執行成功了?
演示二、假如您是系統管理員,每天要收集各個服務器的Disk信息,來看看我這個程序能為您做的:
1 假如,您用這個檢查您的根 “/”  分區使用量 :df  -h|awk '$NF=="/"{print  $(NF-1)}'   看看這個命令在我的程序裏如何運行:(當然,這只是一個普通的linux系統命令而已,您可以執行是mkdir  /tmp/test  , ps -fel  等等。。Linux系統命令)
也許此時您會覺得,這樣在屏幕上顯示,我沒法收集起來啊?那您的擔心,我完全為您考慮到了,來看下日誌:
格式化日誌: tail -f  /cheung/logs/cheungssh.log
原始日誌:   tail -f /cheung/logs/cheungssh.source.log #建議您看這個日誌
看到了嗎? 我的日誌裏面,已經為您記錄好了每個命令的執行結果,所以,您只需要執行命令, 然後就可以在日誌裏面提取出結果來, 這樣, 完全不用人工監督!
演示三、批量的下載各個服務器的文件到本地來,比如說,您要下載localhost這個服務器、127.0.0.1 這兩個服務器的/var/log/messages日誌文件到您的本地服務器來(當然了,我這裏是演示,只能給127.0.0.1和localhost做示範哈,因為敏感問題哦!當然您可以理解成為完全不同的服務器)
演示四、批量的從多個服務器上同時下載多個文件到本地:
假如有一天,您的遊戲服務器有了問題,您的領導讓您把N多個服務器上的Tomcat日誌從5月1日到5月8日的文件都拿到本地來讓研發分析,那麽這個時候,我的這個程序就能幫到您的忙了(註意哦, 是每個服務器都同時下載多個文件哦!):
看看,多個文件就從多個服務器上下載下來了哦!霸道吧?
演示五、批量上傳文件到遠程服務器 :
演示六、自動化部署Tomcat、Apache、Nginx、Weblogic程序:(這個程序可是我的王牌設計哦!)
先介紹一下場景:您有100臺服務器,今晚就需要部署Tomcat程序升級包,部署完了以後,需要重啟Tomcat吧?
有個前提,您的領導不允許你因為部署,就全部同時停止多個Tomcat服務器,因為那樣對業務會有影響!只允許同時             停止一臺Tomcat,那麽我的這個程序就派上了用場!
首先介紹一下設計思路:一個進程去執行重啟Tomcat的命令, 而另一個命令負責去監控重啟後的Tomcat日誌,如果             日誌中出現“Startup server” 字樣,那麽說明Tomcat就啟動成功了,這個進程會告訴另外一個進程相關信息,而此時           另外的那個進程就可以對下一個服務器執行重啟命令了哦!如此循環!知道重啟完畢為止,當然如果重啟過程中遇到錯           誤,那麽程序會詢問您是否需要繼續重啟其他服務器?
好,我們看下演示效果:
看下真正的tomcat日誌,發現,是真的啟動成功了  
演示七、在您本地的腳本,讓他在遠程服務器上運行,事先遠程服務器上沒有這個腳本的哦!
應用場景,比如您要對服務器執行一個腳本內容, 而事先無需讓這個腳本在遠程服務器上存在,只需要        在本地程序         上運行,就能讓遠程服務器上運行了哦!
來看下效果:
1 先看下我們本地腳本的內容:
[root@1 ~]# more b.sh
echo "遠端服務器:"
/sbin/ifconfig|awk  -F "( *)|:" ' {if ($0~"inet6") next; } {if($0~/127.0.0.1/) next;} $0~/inet/{print $4}'
2 然後把上面的腳本b.sh 在程序裏面執行:
演示八、選定主機組:
1. 看下/cheung/conf/hosts配置文件,已經配置了多個主機組:
[hosts1]
127.0.0.1===22===admin===admin123===None
test.com===22===root===zhang===None
[hosts2]
localhost===22===root===zhang===None
2 進入內部命令模式,使用select選定主機組,或者是主機
全部的功能已經介紹完了,看完了我的介紹,您覺得最大的感觸是什麽呢 ?有沒有覺得我的配置很多?很繁瑣?在使用的過程中,有沒有像Ansible或者是Puppet一樣,配置一大把參數, 一大把文件?沒有吧!!
更多操作方法,請到GitHub下載操作手冊《CheungSSH發布手冊.docx》)查看了解.
我誠意推薦您使用本軟件進行自動化運維或者部署,因為Ansible比puppet更好,而我的AutoSSH比Ansible更優秀!!本軟件由:張其川 Cheung Kei-Chuen 全程自主開發,屬於中國人的又一個運維利器!

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 成功运行 的頭像
    成功运行

    成功运行的部落格

    成功运行 發表在 痞客邦 留言(0) 人氣()