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                  <<< (Необязательно) Оболочка пользователя (значение по умолчанию "/bin/bash")
#     expires: -1                       <<< (Необязательно) Дата истечения пользователя в формате Epoch (значение по умолчанию "-1").
#     create_home: yes                  <<< (Необязательно) Создать домашний каталог (значение по умолчанию "yes").
#     system: no                        <<< (Необязательно) Создать системную учетную запись (значение по умолчанию "no").

Пример плейбука:

В этом примере Ansible создаст (или, возможно, отредактирует - если это не первый запуск) 3 пользователей. user1 с комментарием, zsh в качестве стандартной оболочки, пользователь истечет в 1640991600 Unix-времени, пользователь будет добавлен в группы sudo и docker, и, наконец, будут добавлены два публичных 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 мой_пользовательский_ключ'
          - 'ssh-rsa xxxxxx мой_пользовательский_ключ'

      - name: user2

      - name: appuser
        system: yes
        create_home: no

  roles:
      - ansible-user_management

Лицензия

MIT

Информация об авторе

Создано в 2020 году Михалом Мурасским

О проекте

Linux users and ssh keys management

Установить
ansible-galaxy install MonolithProjects/ansible-user_management
Лицензия
Unknown
Загрузки
58654
Владелец
Full-time Cloud Engineer, part-time adventurer