user_management
Управление пользователями
Этот 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 году Михалом Мурасским
ansible-galaxy install MonolithProjects/ansible-user_management