Ansible getent模块';s循环输出结果解析

Ansible getent模块';s循环输出结果解析,ansible,ansible-filter,Ansible,Ansible Filter,我试图使用getent模块检查托管节点中是否存在大量用户,并创建一个不存在的用户列表。 这段代码是: - getent: database: passwd key: "{{ item }}" fail_key: no register: x loop: - "user1" - "user2" - debug: var=x.results - set_fact: fail_list: "{{ x.results | }}" 我被困在这一

我试图使用
getent
模块检查托管节点中是否存在大量用户,并创建一个不存在的用户列表。 这段代码是:

- getent:
    database: passwd
    key: "{{ item }}"
    fail_key: no
  register: x
  loop:
    - "user1"
    - "user2"

- debug: var=x.results

- set_fact:
    fail_list: "{{ x.results | }}"
我被困在这一点上。
是否有任何方法可以将未出现在变量fail_列表中的用户保存为
列表

在上面的示例中,
user1
不存在,而
user2
存在于托管节点中。
我使用的ansible版本是2.9,调试输出是DICT列表,如下所示:

    "x.results": [
        {
            "ansible_facts": {
                "getent_passwd": {
                    "user1": null
                }
            },
            "ansible_loop_var": "item",
            "changed": false,
            "failed": false,
            "invocation": {
                "module_args": {
                    "database": "passwd",
                    "fail_key": false,
                    "key": "user1",
                    "service": null,
                    "split": null
                }
            },
            "item": "user1",
            "msg": "One or more supplied key could not be found in the database."
        },
        {
            "ansible_facts": {
                "discovered_interpreter_python": "/usr/bin/python",
                "getent_passwd": {
                    "user2": [
                        "x",
                        "0",
                        "0",
                        "user2",
                        "/home/user2",
                        "/bin/bash"
                    ]
                }
            },
            "ansible_loop_var": "item",
            "changed": false,
            "failed": false,
            "invocation": {
                "module_args": {
                    "database": "passwd",
                    "fail_key": false,
                    "key": "user2",
                    "service": null,
                    "split": null
                }
            },
            "item": "user2"
        },
运行
getent
一次并搜索用户列表。比如说

-hosts:localhost
任务:
-格滕:
数据库:passwd
-调试:
msg:用户{{item}}存在。
循环:
-根
-用户1
-用户2
何时:my_用户中的项目
变量:
my_用户:{{getent_passwd.keys()| list}}”
给予

ok:[localhost]=>(item=root)=>{
“msg”:“存在用户根目录。”
}
正在跳过:[localhost]=>(项=user1)
正在跳过:[localhost]=>(项=user2)