将 NONE 显示为缺少 ansible_facts 的值

display NONE as a value for missing ansible_facts

我执行剧本从多个服务器收集 ansible_facts 因此创建硬件报告,有些 ansible_facts 不存在(devicesnet_adapters...) ,我想将 NONE 显示为这些不可用 ansible_facts 的值,而不是收到阻止我的剧本不停止 运行 的错误。

您可以为此使用 default Jinja 过滤器。

在我没有 net_adapters

的主机上给出此剧本
- hosts: localhost

  tasks:  
    - debug: 
        msg: "{{ ansible_facts.net_adapters | default('NONE') }}"

这产生了回顾


TASK [Gathering Facts] *******************************************************************************************
ok: [localhost]

TASK [debug] *****************************************************************************************************
ok: [localhost] => {
    "msg": "NONE"
}

PLAY RECAP *******************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0