taktus.users
Ansible 角色:用户
用于管理系统用户的角色。
角色配置
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变量。将其放在 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不同。is_system_user
- 设置为True
创建系统用户。
示例:
---
users:
- username: foo
name: Foo Bar
groups: ['admin', 'systemd-journal']
uid: 1005
home: /local/home/foo
profile: |
alias ll='ls -ahl'
ssh_key:
- "ssh-rsa AAAAA.... foo@server"
- "ssh-rsa AAAAB.... foo2@server"
groups_to_create:
- name: developers
gid: 20000
生成密码哈希:
# 在Debian/Ubuntu上(通过"whois"包)
mkpasswd --method=SHA-512 --rounds=4096
# OpenSSL(注意:这将只生成md5crypt,虽然比明文好,但不应视为完全安全)
openssl passwd -1
# Python(更改密码和盐值)
python -c "import crypt, getpass, pwd; print crypt.crypt('password', '\$6\$SALT\$')"
# Perl(更改密码和盐值)
perl -e 'print crypt("password","\$6\$SALT\$") . "\n"'
删除用户
users_deleted
变量包含应该从系统中移除的用户列表,这些用户将在下次ansible运行时被删除。格式与添加用户相同,但唯一必需的字段是 username
。但是,建议您保留 uid
字段以备参考,以免数字用户ID意外重复使用。
您还可以选择使用 remove
参数删除用户的主目录和邮件喷头,使用 force
参数强制删除文件。
users_deleted:
- username: bar
uid: 1003
remove: yes
force: yes
依赖
无。
许可证
MIT
安装
ansible-galaxy install taktus.users
许可证
mit
下载
76
拥有者