chasinglogic.ansible_users
ansible-users
用于管理系统用户的角色。
这是从 singleplatform-eng.users 的一个分支,因为它看起来没有维护了。
角色配置
users_create_per_user_group
(默认:true) - 创建用户时,同时创建一个与用户名相同的组,并将其设置为用户的主组。users_group
(默认:users) - 如果未设置users_create_per_user_group
,则这是所有创建用户的主组。users_default_shell
(默认:/bin/bash) - 如果未为用户指定,则使用默认的shell。users_create_homedirs
(默认:true) - 为新用户创建主目录。如果您单独管理主目录,则将其设置为false。authorized_keys_file
(默认:.ssh/authorized_keys) - 如果SSH服务器配置为使用非标准的授权密钥文件,请设置此项。
创建用户
添加一个包含要添加的用户列表的变量。将其放在 group_vars/all
或 group_vars/groupname
中是个不错的选择,如果您只想在某些机器上添加用户。
每个用户需要以下属性:
username
- 用户的用户名。name
- 用户的全名(gecos字段)。home
- 要创建的用户主目录(可选,默认为 /home/username)。uid
- 用户的数字用户ID(可选)。这是确保多个系统之间uid
一致性所必需的。gid
- 组的数字组ID(可选)。否则,将使用uid
。password
- 如果提供了哈希值,则将使用该值;否则,账户将被锁定。update_password
- 可以是 'always' 或 'on_create'- 'always' 会在密码不一致时更新密码。(默认)
- 'on_create' 仅会为新创建的用户设置密码。
group
- 可选的主组覆盖。groups
- 用户的附加组列表。append
- 如果是,则仅添加组,而不是将其设置为groups中的列表(可选)。profile
- 用于设置自定义shell配置的字符串块。ssh_key
- 应为用户的SSH密钥列表(可选)。每个SSH密钥应直接包含,不应有换行。generate_ssh_key
- 是否为用户生成SSH密钥(可选,默认为否)。
此外,以下项目对每个用户是可选的:
shell
- 用户的shell。默认是 /bin/bash。如果您希望所有用户使用相同的shell,但它不同于/bin/bash,可以使用users_default_shell
变量进行配置。
示例:
---
users:
- username: foo
name: Foo Barrington
groups: ['wheel','systemd-journal']
uid: 1001
home: /local/home/foo
profile: |
alias ll='ls -lah'
ssh_key:
- "ssh-rsa AAAAA.... foo@machine"
- "ssh-rsa AAAAB.... foo2@machine"
groups_to_create:
- name: developers
gid: 10000
users_deleted:
- username: bar
name: Bar User
uid: 1002
删除用户
users_deleted
变量包含应该不再在系统中的用户列表,这些用户将会在下次ansible运行时被删除。格式与添加用户时相同,但唯一的必填字段是 username
。然而,建议您保留 uid
字段以便参考,避免数字用户ID被意外重用。
您可以选择通过 remove
参数删除用户的主目录和邮件的存放目录,并通过 force
参数强制删除文件。
users_deleted:
- username: bar
uid: 1002
remove: yes
force: yes