ansible - 如何从 ansible 任务将成员添加到 LDAP 组

标签 ansible ldap

在ansible中创建一个“newuser”任务,其中一个任务是将newuser添加到多个ldap组中。我收到无效语法错误,并且不清楚我的语法如何或为何错误(这似乎是 LDAP 语法问题,而不是 python/ansible 语法)。

我可以从命令行使用 ldapmodify 添加成员,但不能使用 ansible 任务。

从命令行成功添加的示例:

ldap="dn: cn=mygroup,ou=Groups,dc=domain,dc=com
changetype: modify
add: member
member: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="94f7faa9f1f9f5fdf8d4f0fbf9f5fdfabaf7fbf9" rel="noreferrer noopener nofollow">[email protected]</a>,ou=People,dc=domain,dc=com
"
echo "${ldap}" | /usr/bin/ldapmodify -x -D cn=admin,dc=domain,dc=com -w mypass
modifying entry "cn=mygroup,ou=Groups,dc=domain,dc=com"

尝试使用ansible任务:

   - name: Add to ldap groups as needed
     ldap_attr:
       dn: "cn=mygroup,ou=Groups,dc=domain,dc=com"
       name: member
       values: "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4b2e262a22270b2f24262a222565282426" rel="noreferrer noopener nofollow">[email protected]</a>,ou=People,dc=domain,dc=com"
       state: present
       params: "{{ ldap_auth }}"

ansible 的错误是: ldap.INVALID_SYNTAX: {'info': u'值不符合断言语法', 'desc': u'无效语法'}

ansible 变量 ldap_auth 定义为: ldap_auth: server_uri:ldap://10.1.1.1 bind_dn:“cn = 管理员,dc = 域,dc = com” bind_pw:“我的密码”

我期望用户作为附加成员添加到 ldap 组中。

ldapsearch 将其显示为我当前的组之一: dn: cn=mygroup,ou=组,dc=域,dc=com cn: 我的群组 对象类:名称组 对象类别:顶部 描述:我的群组用户(群组日历) 成员(member):[email protected] ,ou=人员,dc=域,dc=com 成员(member):[email protected] ,ou=人员,dc=域,dc=com

最佳答案

我不使用 LDAP 模块,但 Ansible 文档表示您需要对新条目使用 ldap_entry 模块。

参见docs :

Note This only deals with attributes on existing entries. To add or remove whole entries, see ldap_entry.

尝试ldap_entry module .

关于ansible - 如何从 ansible 任务将成员添加到 LDAP 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57318885/

相关文章:

Ansible 变量优先级哈希

ansible - 为什么角色部分中没有 Ansible 事实?

puppet - 如何将部署自动化工具集成到 Puppet 中?

hadoop - 具有LDAP认证的Cloudera Manager

c# - 使用 HttpClient 的 .NET Core SPNEGO 身份验证

amazon-web-services - ansible local_action 返回错误 "invalid output was: [sudo via ansible, key=xxx] password:"

copy - Ansible 复制模块失败

vbscript - 通过 openDSObject 在 vbScript 中连接到 OpenLDAP 服务器

java - 在 Java 的 Active Directory 系统中通过 IP 对用户进行身份验证

php - 面向 RDBMS 开发人员的 LDAP 入门指南