ansible
ansible是新出現(xiàn)的自動(dòng)化運(yùn)維工具,基于Python開(kāi)發(fā),集合了眾多運(yùn)維工具(puppet、cfengine、chef、func、fabric)的優(yōu)點(diǎn),實(shí)現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能。
ansible是基于模塊工作的,本身沒(méi)有批量部署的能力。真正具有批量部署的是ansible所運(yùn)行的模塊,ansible只是提供一種框架。主要包括:
- 連接插件connection plugins:負(fù)責(zé)和被監(jiān)控端實(shí)現(xiàn)通信;
- host inventory:指定操作的主機(jī),是一個(gè)配置文件里面定義監(jiān)控的主機(jī);
- 各種模塊核心模塊、command模塊、自定義模塊;
- 借助于插件完成記錄日志郵件等功能;
- playbook:劇本執(zhí)行多個(gè)任務(wù)時(shí),非必需可以讓節(jié)點(diǎn)一次性運(yùn)行多個(gè)任務(wù)。
1.ansible部署
ansible 與saltstack功能大致相同,但是好的一點(diǎn)就是我們Ansible不需要客戶端,Centos的yum源當(dāng)中沒(méi)有Ansible的包,我們需要先RPM安裝一下阿里云 的epel源:
1
2
|
rpm -Uvh https: //mirrors .aliyun.com /epel/epel-release-latest-7 .noarch.rpm yum install ansiable -y |
2.ansible配置
系統(tǒng)環(huán)境:
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.配置文件參數(shù)
編輯 /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, 解決下面問(wèn)題
1
|
host_key_checking = False |
默認(rèn)ansible是使用key驗(yàn)證的,如果使用密碼登陸的服務(wù)器,使用ansible的話,要不修改ansible.cfg配置文件的ask_pass = True給取消注釋,要不就在運(yùn)行命令時(shí)候加上-k,這個(gè)意思是-k, --ask-pass ask for SSH password。再修改:host_key_checking= False即可
2.使用ansible進(jìn)行ping命令
單臺(tái)測(cè)試客戶端是否通了
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" } |
測(cè)試一個(gè)組是否通了
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" } |
安裝完成。以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://segmentfault.com/a/1190000014597605