users
Роль пользователей для Ansible
Эта роль позволяет просто управлять учетными записями пользователей в системе.
С версии 0.2
появилась возможность контролировать, где создать определенную учетную запись, установив целевую группу хостов (например, группу инвентаря, тег EC2 или другую метку облака).
Список изменений
0.2.1 - 2021-11-08
Добавлено:
Удаление группы пользователей
Удаление домашней директории пользователя - delete_homedirs
0.2 - 2021-11-08
Изменено:
target_hosts
теперь обязательный. Пожалуйста, добавьте target_hosts: ['all']
в каждую запись пользователя, если вы хотите создать этого пользователя на всех хостах.
Убрано:
users_keys
убрано из-за проблем совместимости. Вероятно, оно вообще не использовалось.
0.1 - 2021-10-27
Исправления:
groups
должен быть опущен по умолчанию, другие значения по умолчанию.
Добавлено:
Первая попытка target_hosts
(не работает).
Изменено:
users.state
обязательный.
Требования
- Ansible 2.9.0 или выше
Переменные
Переменные, которые можно передать в эту роль и их краткое описание:
# Список учетных записей пользователей, которые нужно добавить в систему
users: []
# Умолчательная оболочка для всех учетных записей пользователей
users_default_shell: '/bin/bash'
# Умолчательная группа для новых учетных записей пользователей
users_default_group: 'users'
# Умолчательный флаг для создания уникальной группы для каждого пользователя или
# вместо этого добавления всех пользователей в указанную выше группу по умолчанию
users_create_group_per_user: true
# Умолчательный флаг для создания домашних директорий пользователей
users_create_homedir: true
# Умолчательный список групп (для создания)
users_group_list: []
# Удаление домашних директорий при удалении пользователя - отключено по умолчанию
delete_homedirs: false
Структура списка пользователей
# Список учетных записей пользователей, которые нужно добавить в систему
users:
# Первый пользователь, определяющий только обязательные атрибуты
- username: 'johndoe' # Имя пользователя в Linux
uid: 1000 # НЕОБЯЗАТЕЛЬНЫЙ идентификатор пользователя (обычно не системные пользователи начинаются с 1000)
authorized: [] # Список открытых SSH-ключей, которые нужно добавить в учетную запись
target_hosts: ['dev'] # Список групп хостов инвентаря, где должна существовать учетная запись пользователя
state: 'present' # ОБЯЗАТЕЛЬНОЕ состояние учетной записи
# Второй пользователь, определяющий все доступные атрибуты
- username: 'janedoe' # Имя пользователя в Linux
uid: 1001 # НЕОБЯЗАТЕЛЬНЫЙ идентификатор пользователя
authorized: # Список открытых SSH-ключей
- 'ssh-rsa key_string1'
- 'ssh-ecdsa key_string2'
name: 'Jane Doe' # Используется в качестве комментария при создании учетной записи
system: false # Указать, будет ли учетная запись системной
group: 'jdoe' # Альтернативная основная группа пользователя
groups: # Дополнительные группы пользователей
- 'admin'
- 'developers'
shell: '/bin/bash' # Умолчательная оболочка для учетной записи
home: '/home/jdoe' # Альтернативное местоположение домашней директории для учетной записи
generate_key: true # Генерировать новый SSH-ключ для учетной записи
state: 'present'
# Удаленные учетные записи
- username: 'bob'
uid: 1003
authorized: []
target_hosts: ['dev']
state: absent
Пример Playbook
Создание учетной записи системного администратора и учетной записи для развертывания:
--- # Этот плейбук настраивает машины с общими пользователями - name: Применить общих пользователей ко всем узлам hosts: all roles: - { role: users, users: - username: 'sa' authorized: ['ssh-rsa key_string'] name: 'Системный администратор' groups: ['admin'] target_hosts: - dev - stage - prod state: 'present' - username: 'ansible' name: 'Учётная запись службы Ansible' generate_key: true authorized: [] state: 'present' # Важно - необходимо определить target_hosts, иначе пользователь не будет создан. # Используйте ['all'], чтобы создать пользователя на всех хостах по умолчанию. target_hosts: ['all'] - username: 'johndoe' name: 'John Doe' generate_key: true authorized: [] target_hosts: ['dev'] state: 'present' }
Примечание: При создании переменной, содержащей список пользователей для добавления или удаления,
лучше всего начать с group_vars/all
. Попробуйте group_vars/groupname
или
host_vars/hostname
, если вы хотите добавить пользователей только на определенные машины.
target_hosts
- это список групп хостов, также это может быть тег в динамическом облачном инвентаре, таком как AWS/GCP/WhateverCloud, зона доступности, регион, проект.
Зависимости
Лицензия
MIT.
ansible-galaxy install 1it/ansible-role-users