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/allgroup_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

关于项目

User management role

安装
ansible-galaxy install taktus.users
许可证
mit
下载
76
拥有者