community.general.ipa_pwpolicy 模块 – 管理 FreeIPA 密码策略

注意

此模块是 community.general 集合(版本 10.1.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定:community.general.ipa_pwpolicy

community.general 2.0.0 中的新功能

概要

  • 使用 IPA API 添加、修改或删除密码策略。

参数

参数

注释

dictcheck

布尔值

在 community.general 8.2.0 中添加

检查密码(可能经过修改)是否与字典中的单词匹配(使用 cracklib)。

选项

  • false

  • true

failinterval

字符串

重置失败登录尝试次数的时间段(以秒为单位)。

gracelimit

整数

在 community.general 8.2.0 中添加

密码过期后 LDAP 登录的最大次数。

group

别名:name

字符串

策略适用的组的名称。

如果省略,则使用全局策略。

historylength

字符串

记住的先前密码的数量。

用户不能重复使用记住的密码。

ipa_host

字符串

IPA 服务器的 IP 或主机名。

如果任务中未指定该值,则将使用环境变量 IPA_HOST 的值。

如果任务中既未指定环境变量 IPA_HOST,也未指定该值,则将使用 DNS 来尝试发现 FreeIPA 服务器。

FreeIPA 中需要的相关条目是 ipa-ca 条目。

如果任务中 DNS 条目、环境变量 IPA_HOST 和该值都不可用,则将使用默认值。

默认值: "ipa.example.com"

ipa_pass

字符串

管理用户的密码。

如果任务中未指定该值,则将使用环境变量 IPA_PASS 的值。

请注意,如果 urllib_gssapi 库可用,则可以使用 GSSAPI 向 FreeIPA 进行身份验证。

如果环境变量 KRB5CCNAME 可用,该模块将使用此 kerberos 凭据缓存向 FreeIPA 服务器进行身份验证。

如果环境变量 KRB5_CLIENT_KTNAME 可用,且 KRB5CCNAME 不可用,则该模块将使用此 kerberos keytab 进行身份验证。

如果 GSSAPI 不可用,则必须使用 ipa_pass

ipa_port

整数

FreeIPA / IPA 服务器的端口。

如果任务中未指定该值,则将使用环境变量 IPA_PORT 的值。

如果任务中既未指定环境变量 IPA_PORT,也未指定该值,则设置默认值。

默认值: 443

ipa_prot

字符串

IPA 服务器使用的协议。

如果任务中未指定该值,则将使用环境变量 IPA_PROT 的值。

如果任务中既未指定环境变量 IPA_PROT,也未指定该值,则设置默认值。

选项

  • "http"

  • "https" ← (默认)

ipa_timeout

整数

指定连接的空闲超时时间(以秒为单位)。

对于批量操作,您可能需要增加此值,以避免来自 IPA 服务器的超时。

如果任务中未指定该值,则将使用环境变量 IPA_TIMEOUT 的值。

如果任务中既未指定环境变量 IPA_TIMEOUT,也未指定该值,则会设置默认值。

默认值: 10

ipa_user

字符串

在 IPA 服务器上使用的管理帐户。

如果任务中未指定该值,则会改用环境变量 IPA_USER 的值。

如果任务中既未指定环境变量 IPA_USER,也未指定该值,则会设置默认值。

默认值: "admin"

lockouttime

字符串

用户被锁定的时间段(以秒为单位)。

maxfailcount

字符串

锁定前的最大连续失败次数。

maxpwdlife

字符串

最大密码生命周期(以天为单位)。

maxrepeat

整数

在 community.general 8.2.0 中添加

新密码中允许的最大连续相同字符数。

maxsequence

整数

在 community.general 8.2.0 中添加

新密码中单调字符序列的最大长度。长度为 5 的单调序列示例是 12345

minclasses

字符串

最小字符类别数。

minlength

字符串

最小密码长度。

minpwdlife

字符串

最小密码生命周期(以小时为单位)。

priority

字符串

策略的优先级。

数字越大,优先级越低。

cn 不是全局策略时,此项为必需。

state

字符串

要确保的状态。

选项

  • "absent"

  • "present" ← (默认)

usercheck

布尔值

在 community.general 8.2.0 中添加

检查密码(可能经过修改)是否以某种形式包含用户名(如果用户名长度 > 3 个字符)。

选项

  • false

  • true

validate_certs

布尔值

仅当 ipa_prothttps 时才适用。

如果设置为 false,则不会验证 SSL 证书。

只有在使用自签名证书的个人控制站点上,才应将其设置为 false

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持: 完全支持

可以在 check_mode 中运行,并返回更改状态预测,而无需修改目标。

diff_mode

支持: 不支持

当处于差异模式时,将返回有关已更改(或可能需要在 check_mode 中更改)的内容的详细信息。

示例

- name: Modify the global password policy
  community.general.ipa_pwpolicy:
      maxpwdlife: '90'
      minpwdlife: '1'
      historylength: '8'
      minclasses: '3'
      minlength: '16'
      maxfailcount: '6'
      failinterval: '60'
      lockouttime: '600'
      ipa_host: ipa.example.com
      ipa_user: admin
      ipa_pass: topsecret

- name: Ensure the password policy for the group admins is present
  community.general.ipa_pwpolicy:
      group: admins
      state: present
      maxpwdlife: '60'
      minpwdlife: '24'
      historylength: '16'
      minclasses: '4'
      priority: '10'
      minlength: '6'
      maxfailcount: '4'
      failinterval: '600'
      lockouttime: '1200'
      gracelimit: 3
      maxrepeat: 3
      maxsequence: 3
      dictcheck: true
      usercheck: true
      ipa_host: ipa.example.com
      ipa_user: admin
      ipa_pass: topsecret

- name: Ensure that the group sysops does not have a unique password policy
  community.general.ipa_pwpolicy:
      group: sysops
      state: absent
      ipa_host: ipa.example.com
      ipa_user: admin
      ipa_pass: topsecret

返回值

通用返回值记录在这里,以下是此模块独有的字段

描述

pwpolicy

字典

IPA API 返回的密码策略。

返回: 始终

示例: {"cn": ["admins"], "cospriority": ["10"], "dn": "cn=admins,cn=EXAMPLE.COM,cn=kerberos,dc=example,dc=com", "krbmaxpwdlife": ["60"], "krbminpwdlife": ["24"], "krbpwdfailurecountinterval": ["600"], "krbpwdhistorylength": ["16"], "krbpwdlockoutduration": ["1200"], "krbpwdmaxfailure": ["4"], "krbpwdmindiffchars": ["4"], "objectclass": ["top", "nscontainer", "krbpwdpolicy"]}

作者

  • Adralioh (@adralioh)