AsavarTzeth.users
Роль пользователей Ansible - ansible-role-users
Роль Ansible, используемая для управления пользователями, группами, авторизованными SSH-ключами и sudo.
Формат конфигурации этой роли во многом вдохновлен форматом, используемым в cloud-init/cloud config. Цель состоит в том, чтобы использовать одинаковую или аналогичную структуру yaml, где это возможно, и расширять ее там, где это имеет смысл.
Некоторые незначительные отличия:
- Все символы тире были заменены на нижние подчеркивания; из-за того, как Ansible интерпретирует имена переменных.
Для получения дополнительной информации о cloud-init смотрите документацию по cloud-init на:
https://cloudinit.readthedocs.io/en/latest/index.html
Требования
Эта роль была разработана и протестирована на Ansible 2.2.0 и новее. Она может работать на более старых версиях, но это в настоящее время не поддерживается.
Переменные роли
Список переменных и значений по умолчанию:
# Шелл пользователя по умолчанию, используемый при создании пользователя.
users_default_shell: /bin/bash
# Определяет, должна ли роль создавать основную группу, если она не существует.
# Чтобы предотвратить ошибку выполнения роли, по умолчанию установлено значение true.
# Отключите это, если группы управляются в другом месте.
users_create_primary_group: true
# Включает управление повышением привилегий с помощью sudo.
# Отключите это, если sudo не будет использоваться или управляется в другом месте.
users_enable_sudo: true
# Единственный обязательный параметр - это имя.
users:
- name: '' # Имя пользователя.
gecos: '' # Поле комментария, также известное и используемое для реального имени пользователя.
homedir: '' # Домашний каталог пользователя.
primary_group: '' # Основная группа пользователя.
groups: [] # Список дополнительных групп для пользователя.
no_create_home: false # Если true, не создавать домашний каталог. По умолчанию true, если `system: true`.
shell: "{{ users_default_shell }}" # Шелл пользователя по умолчанию.
passwd: '' # Пароль, хэшированный и посоленный SHA512.
ssh_authorized_keys: [] # Список публичных SSH-ключей для добавления в файл authorized_keys.
sudo: '' # Строка sudo, которая будет использоваться для настройки sudo.
system: false # Если true, пользователь будет системным. Это не влияет на существующих пользователей.
Зависимости
Нет
Пример плейбука
Добавление или изменение пользователя и настройка sudo и авторизованных SSH-ключей:
- hosts: all
roles:
- role: AsavarTzeth.users
users_default_shell: /bin/bash
users_create_primary_group: true
users_enable_sudo: true
users:
- name: foobar1
gecos: Foo B. Bar
primary_group: foobar1
groups: ['users','wheel']
shell: /bin/bash
ssh_authorized_keys:
- "ssh-rsa AAAAA.... foo@host"
- "ssh-rsa AAAAB.... bar@host"
sudo: ALL=(ALL) ALL
Добавление или изменение системного пользователя:
- hosts: all
roles:
- role: AsavarTzeth.users
users:
- name: foobar2
gecos: FooBar Service Account
homedir: /
primary_group: foobar
shell: /sbin/nologin
system: true
Удаление пользователей:
- hosts: all
roles:
- role: AsavarTzeth.users
users_deleted:
- name: foobar1
- name: foobar2
Изменение пароля пользователя:
- hosts: all
roles:
- role: AsavarTzeth.users
users:
- name: foobar1
passwd: $6$mI3A2y4O.YfqhlPt$szsWfnICXsYLbsIghLauJG.I3enLYGDPBYO1DYTHn9gB6y3Q2faM7iqievJlU5ZMTT9X3wHrUv0c7HWkToGBp/
Лицензия
BSD-2-Clause
Информация об авторе
Патрик Нильссон
ansible-galaxy install AsavarTzeth.users