pcanham.users
ansible-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。
- users_ssh_key_exclusive(默认值:false)- 是否从 authorized_keys 文件中移除所有其他未指定的密钥。
- authorized_keys_file(默认值:.ssh/authorized_keys)- 如果SSH服务器配置使用非标准的授权密钥文件,请设置此项。
创建用户
添加一个包含要添加的用户列表的 users 变量。可以将其放在 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,可以使用 users_default_shell 变量进行配置,但它可能与 /bin/bash 不同。
- ssh_key_exclusive - 是否从 authorized_keys 文件中移除所有其他未指定的密钥(默认使用 users_ssh_key_exclusive)。
示例:
---
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