Ansible Tower - set_facts 变量显示空值

问题描述

我有一些奇怪的问题,剧本在 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已经关闭了;如果可能,我会尝试找到更多详细信息。

谢谢。