community.general.ldap_entry 模块 – 添加或删除 LDAP 条目
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.general
。您需要其他要求才能使用此模块,请参阅 要求 以了解详细信息。
要在剧本中使用它,请指定:community.general.ldap_entry
。
概要
添加或删除 LDAP 条目。此模块仅断言 LDAP 条目的存在或不存在,而不是其属性。要断言条目的属性值,请参阅 community.general.ldap_attrs。
要求
在执行此模块的主机上需要以下要求。
python-ldap
参数
参数 |
注释 |
---|---|
如果 每个属性值可以是单值属性的字符串或多值属性的字符串列表。 如果您在 YAML 中指定此选项的值,请注意,您可以使用此模块示例中所示的 YAML 块修饰符来提高长字符串值的易读性。 请注意,当使用 YAML/ansible-core 解释为其他类型的值时,例如 默认值: |
|
要绑定到的 DN。如果省略此项,我们将尝试使用 EXTERNAL 机制进行 SASL 绑定作为默认值。 如果为空,我们将使用匿名绑定。 |
|
与 默认值: |
|
设置包含 CA 证书的 PEM 文件的路径。 |
|
要用于 SSL 客户端身份验证的 PEM 格式证书链文件。 如果定义了 |
|
包含要用于 SSL 客户端身份验证的私钥的 PEM 格式文件。 如果定义了 |
|
要添加或删除的条目的 DN。 |
|
如果 |
|
设置转介追踪行为。
选项
|
|
用于SASL身份验证的类。 选项
|
|
默认值允许底层的LDAP客户端库在其默认位置查找UNIX域套接字。 请注意,当使用多个URI时,您无法确定客户端连接到哪个URI。 对于包含附加字段的URI,尤其是在使用逗号时,行为未定义。 默认值: |
|
如果为真,我们将使用START_TLS LDAP扩展。 选项
|
|
条目的目标状态。 选项
|
|
如果设置为 这仅应在使用自签名证书的站点上使用。 选项
|
|
设置处理Xordered DN的行为。
选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 |
|
支持:不支持 |
处于差异模式时,将返回有关已更改内容(或可能需要在 |
备注
示例
- name: Make sure we have a parent entry for users
community.general.ldap_entry:
dn: ou=users,dc=example,dc=com
objectClass: organizationalUnit
- name: Make sure we have an admin user
community.general.ldap_entry:
dn: cn=admin,dc=example,dc=com
objectClass:
- simpleSecurityObject
- organizationalRole
attributes:
description: An LDAP administrator
userPassword: "{SSHA}tabyipcHzhwESzRaGA7oQ/SDoBZQOGND"
- name: Set possible values for attributes elements
community.general.ldap_entry:
dn: cn=admin,dc=example,dc=com
objectClass:
- simpleSecurityObject
- organizationalRole
attributes:
description: An LDAP Administrator
roleOccupant:
- cn=Chocs Puddington,ou=Information Technology,dc=example,dc=com
- cn=Alice Stronginthebrain,ou=Information Technology,dc=example,dc=com
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
- name: Get rid of an old entry
community.general.ldap_entry:
dn: ou=stuff,dc=example,dc=com
state: absent
server_uri: ldap://127.0.0.1/
bind_dn: cn=admin,dc=example,dc=com
bind_pw: password
#
# The same as in the previous example but with the authentication details
# stored in the ldap_auth variable:
#
# ldap_auth:
# server_uri: ldap://127.0.0.1/
# bind_dn: cn=admin,dc=example,dc=com
# bind_pw: password
#
# In the example below, 'args' is a task keyword, passed at the same level as the module
- name: Get rid of an old entry
community.general.ldap_entry:
dn: ou=stuff,dc=example,dc=com
state: absent
args: "{{ ldap_auth }}"