Ansible自动化运维工具介绍
介紹
Ansible自動化運維工具,是基于Python開發的,可以實現批量系統配置,批量程序部署、批量運行命令等等。
ansible是基于模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只是提供一種
主要包括:
? (1)、連接插件connection plugins:負責和被監控端實現通信;
? (2)、host inventory:指定操作的主機,是一個配置文件里面定義監控的主機;
? (3)、各種模塊核心模塊、command模塊、自定義模塊;
? (4)、借助于插件完成記錄日志郵件等功能;
? (5)、playbook:劇本執行多個任務時,非必需可以讓節點一次性運行多個任務。
2. 環境介紹
? 有兩臺測試環境,IP地址為:192.168.1.126 ? ?192.168.1.127
? 測試環境中WEB服務,數據庫服務,目錄情況均為一致。WEB服務為:tomcat。數據庫服務為mysql。
? 現想通過Ansible實現文件的copy,更新java代碼,重新啟動tomcat命令,重啟mysql的命令等一些其
? 它命令。為了配合開發對功能的測試,需要多臺測試環境,使用Ansible所運行的模塊,實現批量系
? 統配置,批量程序部署,批量運行命令等。這樣可以大大減少簡單和重復性的操作。
3. 安裝
?(1)、python安裝
?#?https://www.python.org/ftp/python/? ?地址為:python官方下載地址,這里有各種版本的py
? thon。
???wget?https://www.python.org/ftp/python/3.0/Python-3.0.tgztar?zxvf?Python-3.0.tgzcd?Python-3.0./configure?--prefix=/usr/localmakemake?installcd?/usr/local/include/python3.0cp?-a?./*?/usr/local/include/? (2)、pycrypto模塊安裝
???wget?https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gztar?xvzf?pycrypto-2.6.1.tar.gzcd?pycrypto-2.6.1python?setup.py?install? (3)、PyYAML模塊安裝
? (4)、setuptools模塊安裝
???wget?tar?xvzf?setuptools-7.0.tar.gzcd?setuptools-7.0python?setup.py?install? (5)、Jinja2模塊安裝
???wget?tar?xvzf?MarkupSafe-0.9.3.tar.gzcd?MarkupSafe-0.9.3python?setup.py?installwget?tar?xvzf?Jinja2-2.7.3.tar.gz?cd?Jinja2-2.7.3python?setup.py?install? (6)、paramiko模塊安裝
???wget?tar?xvzf?ecdsa-0.11.tar.gzcd?ecdsa-0.11python?setup.py?installwget?tar?xvzf?paramiko-1.15.1.tar.gzcd?paramiko-1.15.1python?setup.py?install? (7)、simplejson模塊安裝
???wget?tar?xvzf?simplejson-3.6.5.tar.gzcd?simplejson-3.6.5python?setup.py?install? (8)、ansible安裝
???wget?tar?xvzf?ansible-1.7.2.tar.gzcd?ansible-1.7.2python?setup.py?install4. Ansible配置
? (1)、SSH免秘鑰登錄 ?# linux單向信任,在測試環境192.168.1.127中生成密鑰
???ssh?-keygen?-t?rsa?-P?""??????#??生成公鑰和私鑰cat?/root/.ssh/id_rsa.pub?>>?/root/.ssh/authorized_keys??#需要將id_rsa.pub文件上傳到測試環境192.168.1.126中,并執行命令chmod?600?/root/.ssh/authorized_keys???#?在測試環境192.168.1.126中,執行命令。? (2)、ansible配置
????mkdir?-p?/etc/ansiblevim?/etc/ansible/ansible.cfg#??將如下的內容添加到ansible.cfg中remote_port?=?36000private_key_file?=?/root/.ssh/id_rsa#??定義主機組vim?/etc/ansible/host#??將如下內容添加到host中[storm_cluster]192.168.1.126??
5. Ansible使用
? ?Ansible已經配置完成,下面使用ansible命令查看192.168.1.126與192.168.1.127中的‘date‘命
? ?令
? (1)、批量使用命令
????ansible?storm_cluster?-m?command?-a?'date'??#??如下圖? ??
? ?# 通過這個命令可以直接將兩個測試環境的時間都顯示出來,success 表示成功執行了。command
? ? 此參數表示“在遠程主機上執行命令”。
? ? 如此可以將date命令,換成/usr/local/tomcat/bin/./shutdown.sh等命令。
?
? (2)、copy ? ? # ?復制文件到遠程文件 ??
??????ansible?storm_cluster?-m?copy?-a?"\src=/alidata/www/WEB-INF1214.zip\dest=/alidata/www/WEB-INF1214.zip\owner=root?group=root?backup=yes";?????#??如下圖? ??
? ?
? ? 查看測試環境192.168.1.126是否存在這個文件,如下圖:
? ??
? ? src:被復制到遠程主機的本地文件,可以是絕對路徑,也可以是相對路徑。
? ? owner:文件所有者
? ? group:文件所屬用戶組
? ? dest:復制到遠程的文件。必填項
? ? mode:文件權限。如文件為755權限,mode="0755"即可。
? ??
? (3)、遠程查看文件內容 ??
?????[root@localhost?/]#?ansible?storm_cluster?-m?command?-a?"cat?/1.txt"????#??如下圖? ??
? (4)、還有很多模塊可以使用,實現批量系統配置,批量程序部署、批量運行命令。
? ?
? ? ?http://docs.ansible.com/ansible/modules_by_category.html? # 更多的模塊請查看此鏈接
? ??
? ? ?關于Ansible的相關介紹以及一些簡單的功能進行介紹,歡迎大家進行補充。
? ? ?
? ? ?在此感謝 http://sofar.blog.51cto.com/353572/1579894?原文章的幫助。雖然過程中有點坎 ? ? ?
? ? ?坷,最終還是可以使用Ansible了。.
轉載于:https://blog.51cto.com/chengxiaobai/1882596
總結
以上是生活随笔為你收集整理的Ansible自动化运维工具介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用spark-sql-perf评测sp
- 下一篇: Linux查看磁盘目录内存空间使用情况