ansible.builtin.user 模块 – 管理用户帐户
注意
此模块是 ansible-core
的一部分,包含在所有 Ansible 安装中。在大多数情况下,即使不指定 collections 关键字,您也可以使用简短的模块名称 user
。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.user
,以便轻松链接到模块文档并避免与可能具有相同模块名称的其他集合冲突。
摘要
管理用户帐户和用户属性。
对于 Windows 目标,请改用 ansible.windows.win_user 模块。
参数
参数 |
注释 |
---|---|
设置用户的授权。 可以使用逗号分隔设置多个授权。 要删除所有授权,请使用 目前在 Illumos/Solaris 上受支持。在与其他平台一起使用时不会执行任何操作。 |
|
可选地设置用户帐户的描述(也称为 *GECOS*)。 在 macOS 上,这默认为 |
|
除非设置为 从 Ansible 2.5 中将 选项
|
|
以 epoch 为单位的用户过期时间,它将在不支持此功能的平台上被忽略。 目前在 GNU/Linux、FreeBSD 和 DragonFlyBSD 上受支持。 从 Ansible 2.6 开始,您可以通过指定负值来删除过期时间。目前在 GNU/Linux 和 FreeBSD 上受支持。 |
|
这仅影响 行为与 当与 选项
|
|
可选地设置用户的 primary group(接受组名称)。 在 macOS 上,这默认为 |
|
用户也是其成员的辅助组列表。 默认情况下,用户将从所有其他组中删除。配置 当设置为空字符串 在 Ansible 2.3 之前,唯一允许的输入格式是逗号分隔的字符串。 |
|
可选地设置用户的主目录。 |
|
在实现它的平台上强制使用“local”命令替代方案。 这在使用集中式身份验证的环境中很有用,当您想要操作本地用户时(换句话说,它使用 这将在调用命令之前检查 这要求上述命令以及 选项
|
|
可选地设置用户的登录类,这是大多数 BSD 操作系统的一项功能。 |
|
要创建、删除或修改的用户名称。 |
|
可选地,当与 选项
|
|
如果提供,则将用户的密码设置为提供的加密哈希(Linux)或纯文本密码(macOS)。 **Linux/Unix/POSIX:**将哈希密码作为值输入。 有关生成密码哈希的各种方法的详细信息,请参阅 常见问题解答条目。 要在 Linux 系统上创建具有锁定/禁用密码的帐户,请将其设置为 要在 OpenBSD 上创建具有锁定/禁用密码的帐户,请将其设置为 **OS X/macOS:**将明文密码作为值输入。请务必采取相关的安全预防措施。 在 macOS 上,无论用户帐户是否已存在, 当密码作为参数传递时,ansible.builtin.user 模块对于 macOS 系统将始终返回 |
|
密码过期后到帐户被禁用之前的的天数。 目前支持 AIX、Linux、NetBSD、OpenBSD。 |
|
两次密码更改之间允许的最大天数。 仅支持 Linux。 |
|
两次密码更改之间允许的最小天数。 仅支持 Linux。 |
|
密码过期前的天数警告。 仅支持 Linux。 |
|
锁定密码 ( 实现方式因平台而异。此选项并不总是意味着用户无法使用其他方法登录。 此选项不会禁用用户,只会锁定密码。 为了解锁当前锁定的密码,此选项必须设置为 目前支持 Linux、FreeBSD、DragonFlyBSD、NetBSD、OpenBSD。 选项
|
|
设置用户的配置文件。 可以使用逗号分隔设置多个配置文件。 要删除所有配置文件,请使用 目前在 Illumos/Solaris 上受支持。在与其他平台一起使用时不会执行任何操作。 |
|
在启用 SELinux 的系统上,可以选择设置 |
|
可以选择设置用户的 shell。 在 macOS 上,Ansible 2.5 之前,非系统用户的默认 shell 是 在其他操作系统上,默认 shell 由此模块调用的底层工具确定。有关调用的工具的每个平台列表,请参阅注释。 从 Ansible 2.18 开始,类型从 str 更改为 path。 |
|
可以选择设置主目录骨架目录。 需要 |
|
可以选择指定要创建的 SSH 密钥的位数。 默认值取决于 |
|
可以选择定义 SSH 密钥的注释。 默认值: |
|
可以选择指定 SSH 密钥文件名。 如果这是一个相对文件名,则它将相对于用户的主目录。 此参数默认为 |
|
设置 SSH 密钥的密码短语。 如果未提供密码短语,则 SSH 密钥将默认为没有密码短语。 |
|
可以选择指定要生成的 SSH 密钥的类型。 可用的 SSH 密钥类型将取决于目标主机上存在的实现。 默认值: |
|
可以选择设置用户的 UID。 |
|
选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 check_mode 下运行并返回更改状态预测,而无需修改目标,如果不受支持,则操作将被跳过。 |
|
支持:不支持 |
将在差异模式下返回有关已更改内容(或可能需要在 check_mode 中更改内容)的详细信息 |
|
平台: posix |
可以对其进行操作的目标操作系统/系列 |
注释
注意
每个平台对用户管理实用程序都有特定的要求。但是它们通常预装在系统中,Ansible 将需要它们在运行时存在。如果不存在,将显示描述性错误消息。
在 SunOS 平台上,由于此模块直接编辑影子文件,因此会自动备份影子文件。在其他平台上,影子文件由此模块使用的底层工具备份。
在 macOS 上,此模块使用
dscl
创建、修改和删除帐户。dseditgroup
用于修改组成员资格。通过修改/Library/Preferences/com.apple.loginwindow.plist
将帐户从登录窗口中隐藏。在 FreeBSD 上,此模块使用
pw useradd
和chpass
创建,pw usermod
和chpass
修改,pw userdel
删除,pw lock
锁定,以及pw unlock
解锁帐户。在所有其他平台上,此模块使用
useradd
创建,usermod
修改,以及userdel
删除帐户。
另请参阅
另请参阅
- ansible.posix.authorized_key
**ansible.posix.authorized_key** 模块的官方文档。
- ansible.builtin.group
添加或删除组。
- ansible.windows.win_user
**ansible.windows.win_user** 模块的官方文档。
示例
- name: Add the user 'johnd' with a specific uid and a primary group of 'admin'
ansible.builtin.user:
name: johnd
comment: John Doe
uid: 1040
group: admin
- name: Create a user 'johnd' with a home directory
ansible.builtin.user:
name: johnd
create_home: yes
- name: Add the user 'james' with a bash shell, appending the group 'admins' and 'developers' to the user's groups
ansible.builtin.user:
name: james
shell: /bin/bash
groups: admins,developers
append: yes
- name: Remove the user 'johnd'
ansible.builtin.user:
name: johnd
state: absent
remove: yes
- name: Create a 2048-bit SSH key for user jsmith in ~jsmith/.ssh/id_rsa
ansible.builtin.user:
name: jsmith
generate_ssh_key: yes
ssh_key_bits: 2048
ssh_key_file: .ssh/id_rsa
- name: Added a consultant whose account you want to expire
ansible.builtin.user:
name: james18
shell: /bin/zsh
groups: developers
expires: 1422403387
- name: Starting at Ansible 2.6, modify user, remove expiry time
ansible.builtin.user:
name: james18
expires: -1
- name: Set maximum expiration date for password
ansible.builtin.user:
name: ram19
password_expire_max: 10
- name: Set minimum expiration date for password
ansible.builtin.user:
name: pushkar15
password_expire_min: 5
- name: Set number of warning days for password expiration
ansible.builtin.user:
name: jane157
password_expire_warn: 30
- name: Set number of days after password expires until account is disabled
ansible.builtin.user:
name: jimholden2016
password_expire_account_disable: 15
返回值
常见返回值在 此处有记录,以下是此模块特有的字段
键 |
描述 |
---|---|
passwd 文件中的注释部分,通常是用户名。 返回值: 用户存在时 示例: |
|
是否创建用户主目录。 返回值: 用户不存在且不是检查模式时 示例: |
|
主用户组 ID 返回值: 用户存在时 示例: |
|
用户账户名。 返回值: 始终返回 示例: |
|
生成的 SSH 密钥的指纹。 返回值: 当 示例: |
|
生成的 SSH 公钥文件。 返回值: 当 示例: |
|
运行命令的标准错误输出。 返回值: 当运行的命令返回标准错误输出时 示例: |
|
运行命令的标准输出。 返回值: 当运行的命令返回标准输出时 |
|