community.general.ldap_attrs 模块 – 添加或移除多个 LDAP 属性值
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.general
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定: community.general.ldap_attrs
。
community.general 0.2.0 中的新增功能
概要
添加或移除多个 LDAP 属性值。
要求
执行此模块的主机需要以下要求。
python-ldap
参数
参数 |
注释 |
---|---|
要添加或移除的属性和值。 每个属性值可以是单值属性的字符串或多值属性的字符串列表。 如果您在 YAML 中指定此选项的值,请注意,您可以使用此模块示例中所示的 YAML 块修饰符来提高长字符串值的易读性。 请注意,当使用 YAML/ansible-core 解释为其他类型的值时,例如 |
|
要绑定到的 DN。如果省略此项,我们将尝试使用 EXTERNAL 机制进行 SASL 绑定作为默认值。 如果为空,我们将使用匿名绑定。 |
|
与 默认值: |
|
设置包含 CA 证书的 PEM 文件的路径。 |
|
要用于 SSL 客户端身份验证的 PEM 格式证书链文件。 如果定义了 |
|
包含要用于 SSL 客户端身份验证的私钥的 PEM 格式文件。 如果定义了 |
|
要添加或移除的条目的 DN。 |
|
如果为 选项
|
|
设置转发追踪行为。
选项
|
|
用于 SASL 身份验证的类。 选项
|
|
默认值允许底层 LDAP 客户端库在其默认位置查找 UNIX 域套接字。 请注意,当使用多个 URI 时,您无法确定客户端连接到哪个 URI。 对于包含其他字段的 URI,尤其是在使用逗号时,行为未定义。 默认值: |
|
如果为 true,我们将使用 START_TLS LDAP 扩展。 选项
|
|
属性值的状态。如果为 选项
|
|
如果设置为 这仅应用于使用自签名证书的站点。 选项
|
|
设置处理Xordered DN的行为。
选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 |
|
支持:完全支持 在community.general 8.5.0中添加 |
在差异模式下,将返回有关已更改内容(或在 |
备注
注意
这仅处理现有条目上的属性。要添加或删除整个条目,请参见community.general.ldap_entry。
默认身份验证设置将尝试通过UNIX域套接字使用SASL EXTERNAL绑定。例如,这在默认的Ubuntu安装中运行良好,其中包括一个cn=peercred,cn=external,cn=auth ACL规则,允许root修改服务器配置。如果您需要使用简单的绑定来访问您的服务器,请在
bind_dn
和bind_pw
中传递凭据。对于
state=present
和state=absent
,所有值比较都在服务器上执行,以确保最大准确性。对于state=exact
,必须在Python中比较值,这显然会忽略LDAP匹配规则。这在大多数情况下都能正常工作,但在理论上,当目标值和实际值在语义上相同但在词法上不同时,可能会出现虚假更改。
示例
- name: Configure directory number 1 for example.com
community.general.ldap_attrs:
dn: olcDatabase={1}hdb,cn=config
attributes:
olcSuffix: dc=example,dc=com
state: exact
# The complex argument format is required here to pass a list of ACL strings.
- name: Set up the ACL
community.general.ldap_attrs:
dn: olcDatabase={1}hdb,cn=config
attributes:
olcAccess:
- >-
{0}to attrs=userPassword,shadowLastChange
by self write
by anonymous auth
by dn="cn=admin,dc=example,dc=com" write
by * none'
- >-
{1}to dn.base="dc=example,dc=com"
by dn="cn=admin,dc=example,dc=com" write
by * read
state: exact
# An alternative approach with automatic X-ORDERED numbering
- name: Set up the ACL
community.general.ldap_attrs:
dn: olcDatabase={1}hdb,cn=config
attributes:
olcAccess:
- >-
to attrs=userPassword,shadowLastChange
by self write
by anonymous auth
by dn="cn=admin,dc=example,dc=com" write
by * none'
- >-
to dn.base="dc=example,dc=com"
by dn="cn=admin,dc=example,dc=com" write
by * read
ordered: true
state: exact
- name: Declare some indexes
community.general.ldap_attrs:
dn: olcDatabase={1}hdb,cn=config
attributes:
olcDbIndex:
- objectClass eq
- uid eq
- name: Set up a root user, which we can use later to bootstrap the directory
community.general.ldap_attrs:
dn: olcDatabase={1}hdb,cn=config
attributes:
olcRootDN: cn=root,dc=example,dc=com
olcRootPW: "{SSHA}tabyipcHzhwESzRaGA7oQ/SDoBZQOGND"
state: exact
- name: Remove an attribute with a specific value
community.general.ldap_attrs:
dn: uid=jdoe,ou=people,dc=example,dc=com
attributes:
description: "An example user account"
state: absent
server_uri: ldap://127.0.0.1/
bind_dn: cn=admin,dc=example,dc=com
bind_pw: password
- name: Remove specified attribute(s) from an entry
community.general.ldap_attrs:
dn: uid=jdoe,ou=people,dc=example,dc=com
attributes:
description: []
state: exact
server_uri: ldap://127.0.0.1/
bind_dn: cn=admin,dc=example,dc=com
bind_pw: password
返回值
常见的返回值已在此处记录,以下是此模块特有的字段
键 |
描述 |
---|---|
已修改参数的列表 返回:成功 示例: |