ansible 對於自動化運維非常方便。在這裏就記錄一點自己覺得好用的地方。
1 ansible 的inventory 文件分組,組變量
/etc/ansible/hosts
# 分組
[single]
172.28.64.104
172.28.64.105
172.28.64.133
172.28.64.137
# 組變量
[single:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass=borui2020
2 inventory 文件子分組
[single]
172.28.64.104
172.28.64.105
172.28.64.133
172.28.64.137
[single:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass=borui2020
[ceph]
172.18.0.131
172.18.0.132
172.18.0.133
# 主組包含下面兩個子組
[test:children]
ceph
single
3 inventory 文件 組參數yml文件
由於組比較多,每個組的參數也比較多,如果都放在/etc/ansible/hosts 文件中 就不好管理。對組的參數可以分開放在不同yml文件中管理
/etc/ansible/group_vars/group-name.yml
例如:
#yml 格式
[root@chuangxindasai-prometheus group_vars]# cat ceph.yml
---
ansible_ssh_port: 22
ansible_ssh_user: root
ansible_ssh_pass: ccssoft
[root@chuangxindasai-prometheus group_vars]# ls -l
total 4
-rw-r----- 1 root root 74 Jul 28 16:11 ceph.yml
由上例子可以知道:test的children組single 的變量在hosts 文件,test的children組ceph 的變量在./group_vars/ceph.yml 中(yml文件名一定要和組名一致)
變量可以放在hosts 文件中,也可以放在組列表中。但是如果同時存放則組列表中的會覆蓋hosts中的。