regex - ansible extrct uid form ldap_search 并用于制作 ldap 过滤器
问题描述
你好,我在 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
推荐阅读
- python - 日期格式不正确,有时间
- android-layout - Exoplayer2 是否总是导致 onSurfaceSizeChanged() 至少被调用两次?
- microsoft-graph-api - 有没有办法使用 Microsoft Graph API 在我的个人 OneDrive 中为图像创建静态公共 URL?
- node.js - 如何通过 API 使用 node js
- javascript - 无法从服务器获取字符串响应消息
- python - xy 坐标列表不会显示在保存的文件中
- html - 使块元素重叠绝对定位元素
- python - 使用 Pandas 从 CSV 中获取某些行和某些列
- git - Git合并覆盖所有更改
- python - 编写代码以从电子表格中检索数据