ansible动态主机清单
2、使用动态清单模板,修改其内容,要求如下:
(1)node1是test主机组的成员,其中test主机组可以使用变量:
aa=11
bb=22
(2)node2和node3是prod主机组的成员,其中prod主机组可以使用的变量:
cc=33
dd=44
(3)node1还可以使用的变量:nodevar=lihao1
(4)node2还可以使用的变量:nodevar=lihao2
(5)node3还可以使用的变量:nodevar=lihao3
(6)撰写一个test.yml的playbook,要求所有的受控主机输出变量nodevar的值
[student@ansible ansible]$ vim inventory.py
'dev': {
'hosts': ['node1'],
'vars': {
'aa': '11',
'bb': '22'
}
},
'prod': {
'hosts': ['node2', 'node3'],
'vars': {
'cc': '33',
'dd': '44'
}
},
'_meta': {
'hostvars': {
'node1': {
'nodevar': 'lihao1'
},
'node2': {
'nodevar': 'lihao2'
},
'node3': {
'nodevar': 'lihao3'
}
}
}
}
[student@ansible ansible]$ chmod +x inventory.py
[student@ansible ansible]$ cat test.yaml
---
- hosts: all
tasks:
- name: debug test
debug:
msg: "{{ nodevar }}"
[student@ansible ansible]$ ansible-playbook -i inventory.py test.yaml
PLAY [all] ******************************************************************************************************************************************************
TASK [Gathering Facts] ******************************************************************************************************************************************
ok: [node3]
ok: [node2]
ok: [node1]
TASK [debug test] ***********************************************************************************************************************************************
ok: [node1] => {
"msg": "lihao1"
}
ok: [node2] => {
"msg": "lihao2"
}
ok: [node3] => {
"msg": "lihao3"
}
PLAY RECAP ******************************************************************************************************************************************************
node1 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node2 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node3 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[student@ansible ansible]$ ansible-playbook -i inventory.py test1.yaml
PLAY [all] ******************************************************************************************************************************************************
TASK [Gathering Facts] ******************************************************************************************************************************************
ok: [node3]
ok: [node2]
ok: [node1]
TASK [debug test] ***********************************************************************************************************************************************
ok: [node1] => {
"msg": "lihao1"
}
ok: [node2] => {
"msg": "lihao2"
}
ok: [node3] => {
"msg": "lihao3"
}
PLAY RECAP ******************************************************************************************************************************************************
node1 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node2 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node3 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0