ansible是個配置管理工具,可以批量處理一些任務。ansible只需要依賴ssh即可使用,而不需要在受管主機上安裝客戶端工具。
ansible具有冪等性,即以結果為導向。比如,當我們拉取檔案到本地時,如果本地有該檔案則不再拉取,如果本地沒有該檔案則拉取。
使用ansible需要滿足兩個基本條件:
安裝首先使用pip可以安裝ansible
sudo pip install ansible
安裝方法有多種,可參考:
基於密碼連線配置
ansible的管理清單檔案是/etc/ansible/hosts
在該檔案底部加上:
192.168.0.45 ansible_port=22 ansible_user=root ansible_ssh_pass=123456
ansible_port:埠號
ansible_user:使用者名稱
ansible_ssh_pass:密碼
然後就可以使用命令了,如ansible 192.168.0.45 -m ping
使用ip位址比較麻煩,我們可以為主機指定別名
test ansible_host=192.168.0.45 ansible_port=22 ansible_user=root ansible_ssh_pass=123456
然後就可以使用別名進行連線,ansible test -m ping
基於金鑰連線配置
修改配置檔案為
192.168.0.45 ansible_port=22
使用別名時改為
test ansible_host=192.168.0.45 ansible_port=22
當有多個金鑰時可以使用ssh-agent進行管理,也可以在配置中通過ansible_ssh_private_key_file指定連線主機使用的金鑰。
以上介紹的都是對乙個主機執行命令,實際上可以對多台機器同時進行
ansible all -m ping
上面的命令是對配置檔案中所有的機器執行ping命令,由此得到啟發,對某一部分機器執行相同的命令,所以就需要對機器進行分組。
[a]
192.168.0.45
192.168.0.46
[b]192.168.0.47
所以可以對某乙個組內的機器執行同乙個命令
ansible a -m ping
當ip位址連續時也可以採用如下方式
[a]
192.168.0.[45:46]
同樣的,如果是網域名稱中某個字母是連續的也可以採用類似的方式
[a]
suraer-a.book.net
suraer-b.book.net
[a]
suraer-[a:b].book.com
當組之間有包含關係時,還可以使用子組的方式,如下
[a]
192.168.0.45
[b]192.168.0.46
[c:children]
[a][b]
等價於
[a]
192.168.0.45
[b]192.168.0.46
[c]192.168.0.45
192.168.0.46
# yaml格式
all:
hosts:
192.168.0.45
192.168.0.46
# 對應的ini配置
192.168.0.45
192.168.0.46
採用yaml格式有兩個要注意的地方:
下面舉兩個栗子說明yaml格式與ini格式之間的轉換關係:
# ini格式
192.168.0.47
[a]192.168.0.45
[b]192.168.0.46
# yaml格式
all:
hosts:
192.168.0.47
children:
a:hosts:
192.168.0.45
b:hosts:
192.168.0.46
# ini格式
[a]192.168.0.45
[b]192.168.0.46
[c:children]
[a][b]
# yaml格式
all:
children:
c:children:
a:hosts:
192.168.0.45
b:hosts:
192.168.0.46
yaml格式同樣可以使用別名,如下:
# ini格式
192.168.0.45
test ansible_host=192.168.0.46 ansible_port=22
192.168.0.47
# yaml格式
all:
hosts:
192.168.0.45
test:
ansible_host: 192.168.0.46
ansible_port: 22
192.168.0.47
注意,上面的冒號後面一定要有空格。
在前面的例子中,我們都是使用ping模組,實際上ansible有許多模組,可以使用如下命令檢視那ansible有哪些模組:
ansible-doc -l
檢視具體模組的詳細使用方法,使用如下命令:
ansible-doc -s fetch
檢視了命令就可以對照引數進行使用了,比如將a組中的所有主機的/etc/fstab檔案拉取到本地:
ansible a -m fetch -a "src=/etc/fstab dest=/test/ansible"
Ansible基本使用
角色 作業系統 網路位址 管理主機 ubuntu 14.04 tls 192.168.200.250 託管節點 ubuntu 16.04 tls 192.168.200.11 192.168.200.12 sudo apt get install software properties common...
ansible 基本使用 1
ansible 當前主流的批量配置管理工具,相比於saltstack 它是無agent 模式,基於ssh 去遠端管理主機。有密碼和金鑰兩種方式遠端認證方式。yum y install ansible 前提是有epel 源,如果沒有需要安裝 pip install ansible github原始碼包...
ansible的安裝及基本使用
1.安裝ansible 如果沒有版本和別的要求,這裡直接使用yum安裝 yum y install ansible 檢視版本 root 0006 ansible version ansible 2.4.2.0 config file etc ansible ansible.cfg executabl...