ansible extrct uid 形式 ldap_search 并用于制作 ldap 过滤器

ansible extrct uid form ldap_search and use to make ldap filter

你好,我在 ldpa_search

之后得到了这个结果
 {
    "msg": {
        "changed": false,
        "failed": false,
        "results": [
            {    
                "cn": "workagfa",
                "uniquemember": [
                    "uid=gp2513,ou=user,O=agfa,C=com",
                    "uid=as2179,ou=user,O=agfa,C=com",
                    "uid=mh1382,ou=user,O=agfa,C=com",
                     .......

还有一种方法可以只提取 uid

例如使用正则表达式

uid=([-\d]*[^\;])

然后创建一个这样的事实

((uid=gp2513),(uid=as2179),(uid=mh1382))

这用于向 ldap 查询添加过滤器

非常感谢

你可以这样做:

  tasks:
    - name: something
      : get the extract of ldap
      register: output

    - name: extract uids
      set_fact:
        uids: "{{ uids | default([]) + [item.split(',')[0]] }}"
      loop: "{{ ouput.results.0.uniquemember.0 }}"

    - name: display uids
      debug:
        var: uids