Playbook定义变量与使用
1,定义变量几种方式
[root@es1 playbook-demo]# cat demo7.yml
---
- hosts: webservers
gather_facts: no
tasks:
- name: test var
debug: msg="{{work_dir}}"
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# ansible-playbook demo7.yml --syntax-check
playbook: demo7.yml
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# ansible-playbook demo7.yml -e work_dir=/usr/local/
PLAY [webservers] ********************************************************************************************************************************************************************************
TASK [test var] **********************************************************************************************************************************************************************************
ok: [192.168.0.12] => {
"msg": "/usr/local/"
}
ok: [192.168.0.13] => {
"msg": "/usr/local/"
}
PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.0.13 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@es1 playbook-demo]#
2,主机清单定义(hosts文件中定义)
3,Playbook中定义
[root@es1 playbook-demo]# cat demo8.yml
---
- hosts: webservers
gather_facts: no
vars:
- work_dir: /usr/local
tasks:
- name: test var
debug: msg="{{work_dir}}"
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# ansible-playbook demo8.yml --syntax-check
playbook: demo8.yml
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# ansible-playbook demo8.yml
PLAY [webservers] ********************************************************************************************************************************************************************************
TASK [test var] **********************************************************************************************************************************************************************************
ok: [192.168.0.13] => {
"msg": "/usr/local"
}
ok: [192.168.0.12] => {
"msg": "/usr/local"
}
PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.0.13 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@es1 playbook-demo]#
[root@es1 playbook-demo]#
4,注册变量
注册变量会将命令的结果赋值给这个变量
[root@es1 playbook-demo]# cat demo9.yml
---
- hosts: webservers
gather_facts: no
vars:
- work_dir: /usr/local
tasks:
- name: register var
command: date +"%F_%T"
register: datetime
- name: test var
debug: msg="{{datetime}}"
- name: touch file
file: dest=/tmp/r_{{datetime.stdout}} state=touch
[root@es1 playbook-demo]#
[root@es1 playbook-demo]# ansible-playbook demo9.yml
PLAY [webservers] ********************************************************************************************************************************************************************************
TASK [register var] ******************************************************************************************************************************************************************************
changed: [192.168.0.12]
changed: [192.168.0.13]
TASK [test var] **********************************************************************************************************************************************************************************
ok: [192.168.0.12] => {
"msg": {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"cmd": [
"date",
"+%F_%T"
],
"delta": "0:00:00.005824",
"end": "2020-11-08 13:12:47.875858",
"failed": false,
"rc": 0,
"start": "2020-11-08 13:12:47.870034",
"stderr": "",
"stderr_lines": [],
"stdout": "2020-11-08_13:12:47",
"stdout_lines": [
"2020-11-08_13:12:47"
]
}
}
ok: [192.168.0.13] => {
"msg": {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"cmd": [
"date",
"+%F_%T"
],
"delta": "0:00:00.006202",
"end": "2020-11-08 13:12:47.906527",
"failed": false,
"rc": 0,
"start": "2020-11-08 13:12:47.900325",
"stderr": "",
"stderr_lines": [],
"stdout": "2020-11-08_13:12:47",
"stdout_lines": [
"2020-11-08_13:12:47"
]
}
}
TASK [touch file] ********************************************************************************************************************************************************************************
changed: [192.168.0.13]
changed: [192.168.0.12]
PLAY RECAP ***************************************************************************************************************************************************************************************
192.168.0.12 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.0.13 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@es1 playbook-demo]#