ansible自動化部署(一)

ansible自動化部署

最近由於工做須要學習了ansible,把這幾天所學的東西作了個總結,和你們分享一下:python

一、什麼是ansible?ansible能幹什麼?

ansible是新出現的自動化運維工具,基於Python開發,集合了衆多運維工具(puppet、cfengine、chef、func、fabric)的優勢,實現了批量系統配置、批量程序部署、批量運行命令等功能。
ansible是基於模塊工做的,自己沒有批量部署的能力。真正具備批量部署的是ansible所運行的模塊,ansible只是提供一種框架。主要包括:
(1)鏈接插件connection plugins:負責和被監控端實現通訊;
(2)host inventory:指定操做的主機,是一個配置文件裏面定義監控的主機;
(3)各類模塊核心模塊、command模塊、自定義模塊;
(4)藉助於插件完成記錄日誌郵件等功能;
(5)playbook:劇本執行多個任務時,非必需可讓節點一次性運行多個任務。編程

二、ansible的基本安裝與配置

瞭解了ansible的基本概念以及它的用途,下來,咱們開始部署ansible(本次部署實在Redhat7上進行的),讓ansible在本身的機器上跑起來。
爲了能使用yum安裝,首先咱們得配置本地yum源,具體配置參考個人另外一篇文章
RHEL7配置本地yum源json

安裝ansible
一、安裝python-devel
yum install python-devel
二、setuptools模塊安裝
三、pycrypto模塊安裝
四、PyYAML模塊安裝
五、Jinja2模塊安裝
六、paramiko模塊安裝
七、simplejson模塊安裝
八、ansible安裝
在網上下載以上模塊以及ansiblede的.tar.gz包
分別執行tar xvzf *解壓後 再執行python setup.py install --record log.txt 命令安裝vim

ansible安裝成功以後,接下來進行Ansible的配置
一、SSH免密鑰登陸設置segmentfault

[root@localhost ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
c9:72:68:d4:5a:a7:73:8c:f6:29:3b:44:99:7e:ae:20 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|       .         |
|      . oo.      |
|     . =+*       |
|      =oS o      |
|     . +o+..     |
|    E ...oo      |
|     . ..o.      |
|        oo       |
+-----------------+

二、將信任文件分發到指定服務器上服務器

ssh-copy-id -i /root/.ssh/id_rsa.pub 172.28.159.103

三、配置ansible.cfg微信

[root@localhost ~]# vim /etc/ansible/ansible.cfg
[defaults]
private_key_file = /root/.ssh/id_rsa

四、主機組定義框架

[root@localhost ~]# vim /etc/ansible/hosts 

[test]
localhost
192.168.56.103

五、簡單測試運維

[root@localhost ~]# ansible test -m ping
192.168.56.103 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
localhost | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
個人我的  微信公衆號:**Java編程社區** 歡迎你們的關注
相關文章
相關標籤/搜索