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
你好,我在 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