ansible
ansible是新出現的自動化運維工具,基于Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。
ansible是基于模塊工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所運行的模塊,ansible只是提供一種框架。主要包括:
- 連接插件connection plugins:負責和被監控端實現通信;
- host inventory:指定操作的主機,是一個配置文件里面定義監控的主機;
- 各種模塊核心模塊、command模塊、自定義模塊;
- 借助于插件完成記錄日志郵件等功能;
- playbook:劇本執行多個任務時,非必需可以讓節點一次性運行多個任務。
1.ansible部署
ansible 與saltstack功能大致相同,但是好的一點就是我們Ansible不需要客戶端,Centos的yum源當中沒有Ansible的包,我們需要先RPM安裝一下阿里云 的epel源:
1
2
|
rpm -Uvh https: //mirrors .aliyun.com /epel/epel-release-latest-7 .noarch.rpm yum install ansiable -y |
2.ansible配置
系統環境:
1
2
3
|
server:172.16.0.10 ==> Centos 7.2 64位 client1:172.16.0.11 ==> Centos 6.7 64位 client2:172.16.0.12 ==> Centos 6.7 64位 |
添加客戶端:
1.配置文件參數
編輯 /etc/ansible/hosts
1
2
3
4
5
|
[webservers] ## alpha.example.org ## beta.example.org 172.16.0.11 172.16.0.12 |
編輯 / etc/ansible/ansible.cfg, 解決下面問題
1
|
host_key_checking = False |
默認ansible是使用key驗證的,如果使用密碼登陸的服務器,使用ansible的話,要不修改ansible.cfg配置文件的ask_pass = True給取消注釋,要不就在運行命令時候加上-k,這個意思是-k, --ask-pass ask for SSH password。再修改:host_key_checking= False即可
2.使用ansible進行ping命令
單臺測試客戶端是否通了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@zabbix-server ~] # ansible 172.16.0.11 -m ping -k SSH password: ==> 輸入客戶端的密碼 172.16.0.11 | SUCCESS => { "changed" : false , "ping" : "pong" } [root@zabbix-server ~] # ansible 172.16.0.12 -m ping -k SSH password: 172.16.0.12 | SUCCESS => { "changed" : false , "ping" : "pong" } |
測試一個組是否通了
1
2
3
4
5
6
7
8
9
10
|
[root@zabbix-server ~] # ansible webservers -m ping -k SSH password: 172.16.0.11 | SUCCESS => { "changed" : false , "ping" : "pong" } 172.16.0.12 | SUCCESS => { "changed" : false , "ping" : "pong" } |
安裝完成。以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://segmentfault.com/a/1190000014597605