community.general.ipa_user 模块 – 管理 FreeIPA 用户

注意

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

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

要安装它,请使用:ansible-galaxy collection install community.general。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 Playbook 中使用它,请指定:community.general.ipa_user

概要

  • 在 IPA 服务器中添加、修改和删除用户。

要求

执行此模块的主机需要满足以下要求。

  • base64

  • hashlib

参数

参数

注释

displayname

字符串

显示名称。

gidnumber

字符串

Posix 组 ID。

givenname

字符串

名字。

如果用户不存在并且 state=present,则必须使用 givenname

homedirectory

字符串

在 community.general 0.2.0 中添加

用户的默认主目录。

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"

krbpasswordexpiration

字符串

用户密码过期的日期。

格式为 YYYYMMddHHmmss。

例如,20180121182022 将在 2018 年 1 月 21 日 18:20:22 过期。

loginshell

字符串

登录 Shell。

mail

列表 / 元素=字符串

分配给用户的邮件地址列表。

如果传递一个空列表,则所有分配的电子邮件地址将被删除。

如果传递 None,则不会检查或更改电子邮件地址。

password

字符串

用户的密码。

除非 update_password=always(这是默认值),否则不会为现有用户设置密码。

sn

字符串

姓氏。

如果用户不存在且 state=present,则必须使用 sn

sshpubkey

列表 / 元素=字符串

公共 SSH 密钥列表。

如果传递一个空列表,则所有分配的公钥将被删除。

如果传递 None,则不会检查或更改 SSH 公钥。

state

字符串

要确保的状态。

选项

  • "absent"

  • "disabled"

  • "enabled"

  • "present" ← (默认)

telephonenumber

列表 / 元素=字符串

分配给用户的电话号码列表。

如果传递一个空列表,则所有分配的电话号码将被删除。

如果传递 None,则不会检查或更改电话号码。

title

字符串

职称。

uid

别名: name

字符串 / 必填

用户的 uid。

uidnumber

字符串

帐户设置 UID/Posix 用户 ID 号码。

update_password

字符串

设置用户的密码。

选项

  • "always" ← (默认)

  • "on_create"

userauthtype

列表 / 元素=字符串

在 community.general 1.2.0 中添加

用于用户的身份验证类型。

要从用户中删除所有身份验证类型,请使用一个空列表 []

选项 idppasskey 已在 community.general 8.1.0 中添加。

选项

  • "password"

  • "radius"

  • "otp"

  • "pkinit"

  • "hardened"

  • "idp"

  • "passkey"

validate_certs

布尔值

这仅在 ipa_prothttps 时适用。

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

这应仅在个人控制的站点上使用自签名证书时设置为 false

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持: 完整

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

diff_mode

支持:

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

示例

- name: Ensure pinky is present and always reset password
  community.general.ipa_user:
    name: pinky
    state: present
    krbpasswordexpiration: 20200119235959
    givenname: Pinky
    sn: Acme
    mail:
    - pinky@acme.com
    telephonenumber:
    - '+555123456'
    sshpubkey:
    - ssh-rsa ....
    - ssh-dsa ....
    uidnumber: '1001'
    gidnumber: '100'
    homedirectory: /home/pinky
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret

- name: Ensure brain is absent
  community.general.ipa_user:
    name: brain
    state: absent
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret

- name: Ensure pinky is present but don't reset password if already exists
  community.general.ipa_user:
    name: pinky
    state: present
    givenname: Pinky
    sn: Acme
    password: zounds
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret
    update_password: on_create

- name: Ensure pinky is present and using one time password and RADIUS authentication
  community.general.ipa_user:
    name: pinky
    state: present
    userauthtype:
      - otp
      - radius
    ipa_host: ipa.example.com
    ipa_user: admin
    ipa_pass: topsecret

返回值

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

描述

user

字典

IPA API 返回的用户

返回: 总是

作者

  • Thomas Krahn (@Nosmoht)