finalgene.users
Ansible 角色 users
描述
这个角色用于管理系统上的用户和用户组。
需求
使用此角色需要 ansible.posix
集合。
ansible-galaxy collection install ansible.posix
角色变量
变量 | 类型 | 默认值 | 备注 |
---|---|---|---|
users | 对象列表 | [] |
要创建/删除的用户列表(参考 users)。 |
users_authorized_keys_exclusive | 布尔值 | true |
默认用户的授权密钥是否独占的设置。 |
users_authorized_keys_file | 字符串 | .ssh/authorized_keys |
用户主目录中的 authorized_keys 文件路径。 |
users_create_homedirs | 布尔值 | true |
为新用户创建主目录。 |
users_create_per_user_group | 布尔值 | true |
如果设置为 true ,为每个用户创建一个组并使其成为该用户的主组。 |
users_default_shell | 字符串 | /bin/bash |
如果没有指定,则用户的默认 shell。 |
users_group | 字符串 | users |
所有用户所属的默认组名。 只有在 users_create_per_user_group 设置为 false 时才需要。 |
users_groups | 对象列表 | [] |
要创建/删除的用户组列表(参考 users_groups。 |
users_home | 字符串 | /home |
将包含所有用户主目录的目录。 |
users_home_chroot | 布尔值 | false |
默认用户主目录 chroot 设置。 |
users_home_mode | 字符串 | 0750 |
默认用户主目录权限。 |
users_kill_process | 布尔值 | false |
如果用户正在使用,是否杀死用户进程。 |
users_kill_process_allowed_users | 字符串列表 | 表示应当杀死其进程的用户名列表。 仅在 users_kill_processes 设置为 true 时使用。 |
|
users_kill_process_forbidden_users | 字符串列表 | [] |
表示永远不应当杀死其进程的用户名列表。root 始终被禁止!仅在 users_kill_processes 设置为 true 时使用。 |
users_kill_process_timeout | 整数 | 30 |
在强制杀死进程之前的等待时间。 仅在 users_kill_processes 设置为 true 时使用。 |
users_ssh_key_type | 字符串 | rsa |
默认用户的 ssh 密钥类型。 |
users
变量 | 类型 | 默认值 | 备注 |
---|---|---|---|
append | 布尔值 | false |
如果设置为 true ,将保留现有的组关系。 |
authorized_keys | 字符串列表 | ssh 授权公钥列表。 | |
authorized_keys_exclusive | 字符串列表 | 如果设置为 true ,将保留现有的授权公钥。 |
|
comment | 字符串 | '' |
存储为评论的用户常规名称。 |
expires | 整数 | 用户的到期时间(以 epoch 形式)。 | |
force | 布尔值 | false |
仅影响 state=absent ,在受支持的平台上强制删除用户及相关目录。 |
group | 字符串 | 用户的主组名。 | |
groups | 字符串列表 | 用户所属的所有组的列表。 | |
home | 字符串 | 用户主目录的绝对路径。 | |
home_chroot | 布尔值 | 设置主目录的拥有者为 root 以允许用户主目录的 chroot 功能。 |
|
home_create | 布尔值 | 创建用户的主目录。 | |
home_files | 对象列表 | 应在用户主目录内管理的文件列表。 | |
home_mode | 字符串 | 用户主目录的权限。 | |
local | 布尔值 | false |
强制在实现“local”命令可选项的平台上使用此命令。 |
move_home | 布尔值 | false |
如果设置为 true ,且与 home: 一起使用,则尝试将用户的旧主目录移动到指定目录,如果该目录不存在且旧主目录存在。 |
non_unique | 布尔值 | false |
可选项,当与 -u 选项一起使用时,允许将用户 ID 更改为非唯一值。 |
password | 字符串 | ! |
用户的密码哈希(应使用 mkpasswd 创建)。 |
password_expire_max | 整数 | 密码更改之间的最大天数。 | |
password_expire_min | 整数 | 密码更改之间的最小天数。 | |
password_lock | 布尔值 | 锁定密码。 | |
remove | 布尔值 | false |
仅影响 state=absent ,尝试删除与用户关联的目录。 |
seuser | 字符串 | 在启用 selinux 的系统上可选设置 seuser 类型(user_u)。 | |
shell | 字符串 | 用户的登录 shell。 | |
ssh_key_bits | 整数 | 生成的 ssh 密钥大小。 | |
ssh_key_comment | 字符串 | 可选定义 SSH 密钥的注释。 | |
ssh_key_file | 字符串 | 可选指定 SSH 密钥文件名。 | |
ssh_key_generate | 布尔值 | 如果设置为 true ,则生成 ssh 密钥对。 |
|
ssh_key_password | 字符串 | 生成的 ssh 密钥的密码短语。 | |
ssh_key_type | 字符串 | 生成的 ssh 密钥类型(rsa 、ed25519 等)。 |
|
ssh_keys | 对象列表 | 为用户提供的私有 ssh 密钥列表(参考 ssh_keys)。 | |
state | 字符串 | present |
present 将创建或更新用户。absent 将删除现有用户。 |
system | 布尔值 | 用户是否为系统用户(true )或非系统用户(false )。 |
|
uid | 整数 | 用户的 UID。如果未定义,则创建过程中将使用下一个可用的 UID。 | |
update_password | 布尔值 | always 将在密码不同的情况下更新密码。on_create 仅在为新创建的用户设置密码时生效。 |
|
username | 字符串 必填 |
用户的登录名。 |
home_files
变量 | 类型 | 默认值 | 备注 |
---|---|---|---|
content | 字符串 | 管理文件的内容(仅在未定义 template 时使用)。 |
|
dir_mode | 字符串 | 0750 |
目录权限(仅在需要创建目录时使用)。 |
file_mode | 字符串 | 0640 |
文件权限。 |
path | 字符串 | 文件路径,相对于用户主目录。 | |
state | 字符串 | present |
present 将创建或更新文件。absent 将删除现有文件。 |
template | 字符串 | 该组是否为系统组(true )或非系统组(false )。 |
ssh_keys
变量 | 类型 | 默认值 | 备注 |
---|---|---|---|
name | 字符串 必填 |
密钥文件的名称。 | |
key | 字符串 | SSH 私钥文件内容。 | |
state | 字符串 | present |
present 将在用户主目录中存储密钥文件。absent 将删除现有密钥文件。 |
users_groups
变量 | 类型 | 默认值 | 备注 |
---|---|---|---|
gid | 整数 | 组的 GID。如果未定义,则创建过程中将使用下一个可用的 GID。 | |
local | 布尔值 | false |
强制在实现“local”命令可选项的平台上使用此命令。 |
name | 字符串 必填 |
组的名称。 | |
state | 字符串 | present |
present 将创建或更新该组。absent 将删除现有组。 |
system | 布尔值 | 该组是否为系统组(true )或非系统组(false )。 |
示例 Playbook
users:
- username: foo
comment: Foo Barrington
groups:
- wheel
- -systemd-journal
uid: 1001
home: /local/home/foo
authorized_keys:
- "ssh-rsa AAAAA.... foo@machine"
- "ssh-rsa AAAAB.... foo2@machine"
- username: bar
uid: 1002
state: absent
remove: yes
force: yes
users_groups:
- name: developers
gid: 10000