问题描述
我有一些奇怪的问题,剧本在 Ansible Engine 上运行良好,但在 Ansible Tower 上运行不正常:
- Ansible:2.9.7
- Ansible 塔:3.6.4
- Python:2.7(虚拟环境)
剧本
- name: "{{ dns_server_name }} - Add to Summary"
set_fact:
dns_verification_summary_final: |
{{
dns_verification_summary_final
| combine({
dns_server_name: {
'dns_server_name': dns_server_name,'dns_server_ip' : dns_server_ip,'success_count' : dns_a_counter_pass,'Failed_count' : dns_a_counter_fail,'Failed_hosts' : dns_a_check_Failed_entries
}
})
}}
- name: "{{ dns_server_name }} - Check Summary"
debug:
msg: "{{ dns_verification_summary_final }}"
Ansible 引擎 - 工作正常
TASK [dns-verification : dns2 - Add to Summary] ***********************************************************************************
ok: [localhost]
TASK [dns-verification : dns2 - Check Summary] ************************************************************************************
ok: [localhost] => {
"msg": {
"dns2": {
"dns_server_ip": "8.8.8.8","dns_server_name": "dns2","Failed_count": "2","Failed_hosts": [
"twitter.com","facebook.com"
],"success_count": "1"
},"dns3": {
"dns_server_ip": "8.8.4.4","dns_server_name": "dns3","success_count": "1"
}
}
}
Ansible Tower -
任务输出表明变量设置为 ansible_facts
。
ok: [localhost] => {
"ansible_facts": {
"dns_verification_summary_final": {
"xxx": {
"dns_server_name": "yyy","Failed_count": "3","Failed_hosts": {
"blockthisurl01.net","blockthisurl02.net","blockthisurl03.net"
},"success_count": 0
}
},"myvar": "zzz"
},"changed": false
}
但是调试消息打印了一个空变量。
ok: [localhost] => {
"msg": []
}
解决方法
这不是答案,而是我上面列出的问题的解决方案。
问题出在变量上(但不知道怎么回事!!!);我使用了不同的变量名并且它正在工作。另一个变量也发生了同样的问题,我重命名了该变量并且它起作用了!!!
总之,issue已经关闭了;如果可能,我会尝试找到更多详细信息。
谢谢。