1. 程式人生 > >CheungSSH比Ansible更優秀的Linux SSH批量管理伺服器 執行命令上傳下載自動化運維工具

CheungSSH比Ansible更優秀的Linux SSH批量管理伺服器 執行命令上傳下載自動化運維工具



安裝部署:
   第一步: [ root ~]# yum install -y gcc
   第二步:[ root ~]#  yum install -y 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 
                                [ root ~]#
   cd pycrypto-2.6.1

                                [ root ~]#   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 
                                 [ root ~]#
  cd paramiko-1.9.0

                                  [ root ~]#  python setup.py install

現在您需要修改一下配置檔案,也就是指定程式如何執行,開看下一下配置檔案介紹:
 [root ~]# ./Auto_SSH_Manager_Stand_V85.py  #先執行一下,會生成一些初始化配置檔案
CMD>>>>exit    #然後退出,就算部署好了,接下來就可以修改配置檔案,就能使用啦!!

[[email protected] ~]# more /cheung/conf/cheung.conf   #先看看配置檔案哦!

[AUTO_SSH]
Servers=localhost,127.0.0.1   #這裡是遠端伺服器的IP,也就是被管理的伺服器
Username=root      #伺服器對應的賬戶名,也就是遠端伺服器上的賬戶名
Password=zaq1ZAQ!   #伺服器對應的賬戶password,也就是遠端伺服器上的賬戶password
Useroot=n            #是否使用  su – root    ,我設計的是,既可以su – root,也可以  sudo  ,就是沒有設計成Ansible 的                                sudo 還要加 su ,我認為那是繁瑣的。
#如果您是剛剛使用我的程式,您只需要配置以上就行了,以上是基本的配置, 以下是高階配置哦!
#IP_User=abc             #如果您的眾多伺服器中,有些伺服器的使用者名稱不盡相同,那麼您可以在此處指定額外的使用者名稱,比                               如www.baidu.com_User=administrator
#IP_Password=1234567    #同上理
#IP_Port=222                 #同上理
#Passwordroot=abcdef     #如果使用了su – root ,此處需要指定root的password
#
Timeout=3                  # 指定登陸伺服器的響應超時時間
#
RunMode=M               #使用多執行緒執行程式
#
UseKey=n                  # 是否使用金鑰登入
#
Deployment=n            # 是否使用部署模式,比如在更新Tomcat,Apache 的時候,需要逐一進行部署,使用該模式後,                                        程式會結果您指定的日誌資訊進行判斷重啟是否成功,如果成功,則自動進行下一個伺服器的部                                        署。否則會有提示
#ListenFile=/var/log/messages          #使用了部署模式後,您需要制定一個日誌檔案, 讓程式去讀取您指定的關鍵資訊
#ListenTime=60                            #使用了部署模式後,程式讀取您指定的日誌資訊時間,預設為60秒鐘,如果在指定時間未讀取到相關資訊,則認為部署失敗。

#ListenChar=Server startup             #使用了部署模式後, 您指定的字元資訊,如果讀取到這個資訊,那麼就認為部署成                  功, 伺服器將自動進行下一個部署,比如tomcat中如果出現這個字元,那麼可以認為是               啟動成功了的,當然要排除啟動後的一些404,500錯誤。因為這裡只判斷啟動是否成功
Port=22          #遠端伺服器的埠,預設是22
IP_Port        #不同伺服器的不同埠, 可以此處指定。

###############################################以上是配置資訊

演示一、執行一個命令uptime看下各個伺服器的執行情況:  (請注意,這裡執行命令,與您在Linux的終端下執行命令是一模一樣的哦!這裡就比Ansible的操作更簡單!
[root ~]# ./Auto_SSH_Manager_Stand_V85.py              #這樣就能執行程式了


另外,您還能看到的是,每次執行了命令, 我的程式都會統計:用時多少 ? 有多少伺服器執行成功了?


演示二、假如您是系統管理員,每天要收集各個伺服器的Disk資訊,來看看我這個程式能為您做的:
   1 假如,您用這個檢查您的根 “/”  分割槽使用量 :df  -h|awk '$NF=="/"{print  $(NF-1)}'   看看這個命令在我的程式裡如何執行:(當然,這只是一個普通的linux系統命令而已,您可以執行是mkdir  /tmp/test  , ps -fel  等等。。Linux系統命令)
    

也許此時您會覺得,這樣在螢幕上顯示,我沒法收集起來啊?那您的擔心,我完全為您考慮到了,來看下日誌:tail  -f /cheung/logs/auto_ssh.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 先看下我們本地指令碼的內容:
[[email protected] ~]# 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 在程式裡面執行:


相關推薦

CheungSSHAnsible優秀Linux SSH批量管理伺服器 執行命令下載自動化工具

安裝部署:   第一步: [ root ~]# yum install -y gcc   第二步:[ root ~]#  yum install -y python-devel   第三步 到官網下載pycrypto模組: wget --no-check-certificate https://pypi.py

linux ssh 到遠端伺服器執行命令和crontab中執行命令提示命令找不到的問題

使用ssh ip "hadoop" 命令時,提示找不到hadoop命令。 因為hadoop是在/etc/profile配置的,ssh到一臺伺服器上時,會執行使用者環境。 而ssh到一臺伺服器上,帶著命

Ubuntu ssh登陸方式和scp命令下載檔案

ssh登陸方式: 在本地命令列終端輸入:ssh [email protected] , 其中username為需要登陸的伺服器的使用者名稱,address為伺服器ip,然後根據提示輸入密碼即可。 scp是一個遠端檔案拷貝程式,用於上傳下載檔案非常的方便。 上傳檔案: 在本地命令

Python實現ssh批量登入並執行命令

區域網內有一百多臺電腦,全部都是linux作業系統,所有電腦配置相同,系統完全相同(包括使用者名稱和密碼),ip地址是自動分配的。現在有個任務是在這些電腦上執行某些命令,者說進行某些操作,比如安裝某些軟體,拷貝某些檔案,批量關機等。如果一臺一臺得手工去操作,費時又費力,

自動化工具ansible的簡單使用

linux 自動化運維 ansible 準備兩臺機器,一臺作為服務端,一臺作為客戶端1、在其中一臺服務端上安裝ansible[[email protected]/* */ ~]# yum install -y epel-release[[email protected]/*

自動化工具ansible

ansibleansible ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。ansible是基於模塊工作的,本身沒有批量部署的能力。真正

自動化工具Ansible實戰(五)playbook使用

play playbook ansible (一)playbook簡述 ansbile-playbook是一系統ansible命令的集合,其利用yaml 語言編寫,運行過程,ansbile-playbook命令根據自上而下的順序依次執行。同時,playbook開創了很多特性,它可以允許你

自動化工具Ansible實戰(七)playbook循環

ansible ansible-play (一)簡述 在使用ansible做自動化運維的時候,免不了的要重復執行某些操作,如:添加幾個用戶,創建幾個MySQL用戶並為之賦予權限,操作某個目錄下所有文件等等。好在playbook支持循環語句,可以使得某些需求很容易而且很規範的實現。(二)常用的循環

自動化工具Ansible學習筆記

playbook ansible 自動化 一、簡介1.1 基本概念: ansible是一個基於python開發的輕量級自動化運維管理工具,可以用來批量執行命令,安裝程序,支持playbook編排。它通過ssh協議來連接主機,去中心化,相對比puppet和saltstack無需安裝客戶即可實現文件

自動化工具Ansible

www. targe .com href 基本用法 bsp .cn 自動化運維 ref ansible 基本用法 ansible playbook 用法 自動化運維工具:Ansible

Linux的企業-自動化工具Saltstack(grains、pillar)

saltstack grains、pillar jinja、haproy+keeplived配置內容接上篇redhat6.5server1 172.25.29.1 salt-master server2 172.25.29.2 salt-minion haproy+keeplivedserver3 172

自動化工具Ansible之roles

roles 自動化運維 ansible 自動化運維工具ansible之roles 一、概述1.1 概念roles 用於層次性、結構化地組織playbook。roles 能夠根據層次型結構自動裝載變量文件、tasks以及handlers等。要使用roles只需要在playbook中使用inclu

企業輕量級自動化工具ansible(常見的錯誤解決,免秘鑰互信,常用的模塊)

企業 輕量級 自動化 企業輕量級自動化運維工具—ansible1.ansible簡介 ansible是“Ansible is Simple IT Automation”——簡單的自動化IT工具。它可以做到自動化部署APP;自動化管理配置項;自動化的持續交付;自動化的(AWS)雲服務管理。可實

自動化工具——ansible詳解(一)

數據 修改時間 們的 ransac 例如 ces 備份文件 其中 其他 ansible 簡介 ansible 是什麽?   ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、chef、func、fabric)的優點,實現了批量系

ansible企業級自動化工具

gin proc 工具 ack aml 安裝 速度 pla ups ansible工具遠程執行批量操作:1、安裝httpd包 2、復制httpd服務配置文件 3、啟動或重啟httpd服務 - hosts: web remote_user: root ta

批量同步代碼:有3臺服務器(A,B,C)做負載均衡,由於規模太小目前並未使用專業的自動化工具

rda 屬性。 環境變量 再次 由於 執行 http sleep 依次 需求背景是:一個業務,有3臺服務器(A,B,C)做負載均衡,由於規模太小目前並未使用專業的自動化運維工具。有新的需求時,開發同事改完代碼會把變更上傳到其中一臺服務器A上。但是其他2臺服務器也需要做相同變

自動化工具Ansible實戰(一)簡介和部署

Ansible 自動化運維 一、Ansible的介紹 Ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點。實現了批量系統配置、批量程序部署、批量運行命令等功能。Ansible是基於模塊工作的,本身沒

自動化工具Ansible實戰(五)Playbooks劇本使用

Ansible 自動化運維 Playbook 一、Playbook 簡介 Playbooks與Ad-Hoc相比,是一種完全不同的運用Ansible的方式,而且是非常之強大的;也是系統ansible命令的集合,其利用yaml語言編寫,運行過程,ansbile-playbook命令根據自上而下的順序依

自動化工具Ansible

mirrors fig 自動化 entos onf oot ear 實現 sea 一、簡介 當下有許多的運維自動化工具( 配置管理 ),例如:Ansible、SaltStack、Puppet、Fabric 等。 Ansible 一種集成 IT 系統的配置管理、應用部署、執行

自動化工具ansible詳細介紹以模塊的使用

option gcc 配置文件 詳細介紹 通信 cache actual value 就是 ansible ansible的理論部分 ansible的介紹  ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、chef、func、