标签和结果注册
# 忽略相关的tags
ansible-playbook -i hosts -e host=all docker_init.yml --skip=initenv -s
# 执行指定的tags
ansible-playbook -i hosts -e host=all docker_init.yml --tags=ping -s
# 结果注册
register: result
## 强匹配
when: result.stdout == 'yum.log'
## 弱匹配
when: '"yum.log" in result.stdout'
## 返回状态匹配
when: result["rc"] != 0
## 返回执行内容结果
- name: HOST_DEPLOY_SUCCEED
shell: "echo {{ inventory_hostname }} is success && date"
register: result
- debug: msg="{{result.stdout}}"
when: result["rc"] == 0
## 获取注册变量的某个值
when: result.stdout.split(' ')[2] == "30"
任务委派
- name: host another
shell: "echo '10.0.0.1 test.jd.com' >> /etc/hosts"
delegate_to: 10.0.0.2
错误处理
## 忽略错误处理
- name: errors_actions
command: /bin/false
ignore_errors: yes
预定义变量
可使用ansible的gather_facts进行主机的动态变量获取,也可在inventory
文件中进行定义
$ cat test
100.96.3.116
## inventory_hostname 默认为inventory文件中的目标主机标识(主机名或ip)
- name: HOST_DEPLOY_SUCCEED
shell: "echo {{ inventory_hostname }} is success && date"
收集主机变量
ansible -m setup -a 'filter=ansible_hostname' -i test all
ansible -m setup -a "filter=ansible_default_ipv4" -i test all
网友评论