monolithprojects.user_management

用户管理

最新版本 Galaxy 质量 Galaxy 下载量 GitHub Actions

这个 Ansible 角色用于管理 Linux 用户(创建、编辑、删除)。 管理工作还包括 SSH 密钥的分发。

工作原理

这个角色在每个主机上使用本地事实来存储在 user_management 中列出的用户名。只有这些用户由此角色管理。一旦你从 user_management 列表中移除某个用户,系统将删除该用户及其主目录。user_management 列表中未列出的用户(即不是由此 Ansible 角色创建的用户)将不受影响。

此角色可以

  • 创建用户
  • 删除用户
  • 编辑用户
  • 管理 SSH 密钥

需求

  • 支持的 Linux 发行版:

    • CentOS/RHEL 7,8
    • Debian 9,10
    • Fedora 29,30,31,32
    • Ubuntu 16,18,20

    注意: 这些是每周测试的 Linux 发行版。此角色也很可能能在其他 Linux 发行版上正常运行。

角色变量

以下是 defaults/main.yml 的内容

local_facts_file: linux_users.fact
local_facts_path: /etc/ansible/facts.d
user_management:
#   - name: userx                       <<< 用户名(必填)。
#     comment: User X                   <<< (可选)用户描述。
#     groups:                           <<< (可选)用户将被添加的组列表。
#       - games
#       - video
#     ssh_keys:                         <<< (可选)受信任的公钥列表。
#       - 'ssh-ed25519 xxxx something'
#     shell: /bin/bash                  <<< (可选)用户登录的默认 shell(默认值为 "/bin/bash")。
#     expires: -1                       <<< (可选)用户过期日期,以 Epoch 格式表示(默认值为 "-1")。
#     create_home: yes                  <<< (可选)创建主目录(默认值为 "yes")。
#     system: no                        <<< (可选)创建系统账户(默认值为 "no")。

示例剧本:

在这个示例中,Ansible 将创建(或在不是第一次运行时编辑)3 个用户。user1 带有注释,默认 shell 为 zsh,用户将在 1640991600 Unix 纪元时间到期,用户将被添加到 sudodocker 组,最后添加两个 SSH 公钥。user2 将使用默认设置创建。appuser 将被创建为系统用户。

---
- name: 用户管理
  hosts: all
  user: ubuntu
  gather_facts: yes
  become: yes
  vars:
  
    user_management:
      - name: user1
        comment: 我的测试用户
        shell: /bin/zsh
        expires: 1640991600
        groups:
          - sudo
          - docker
        ssh_keys:
          - 'ssh-ed25519 xxxxxx my_user_key'
          - 'ssh-rsa xxxxxx my_user_key'

      - name: user2

      - name: appuser
        system: yes
        create_home: no

  roles:
      - ansible-user_management

许可证

MIT

作者信息

由 Michal Muransky 于 2020 年创建

关于项目

Linux users and ssh keys management

安装
ansible-galaxy install monolithprojects.user_management
许可证
Unknown
下载
61k
拥有者
Full-time Cloud Engineer, part-time adventurer