users
ansible-users
Роль для управления пользователями в системе.
Настройка роли
- users_create_per_user_group (по умолчанию: true) - при создании пользователей также создается группа с тем же именем, что и имя пользователя, и эта группа становится основной для пользователя.
- users_group (по умолчанию: users) - если users_create_per_user_group не установлено, то это будет основной группой для всех созданных пользователей.
- users_default_shell (по умолчанию: /bin/bash) - оболочка по умолчанию, если для пользователя не указана другая оболочка.
- users_create_homedirs (по умолчанию: true) - создавать домашние директории для новых пользователей. Установите это значение в false, если вы управляете домашними директориями отдельно.
- users_ssh_key_exclusive (по умолчанию: false) - нужно ли удалять все остальные неуказанные ключи из файла authorized_keys.
- authorized_keys_file (по умолчанию: .ssh/authorized_keys) - установите это, если ssh-сервер настроен на использование нестандартного файла с авторизованными ключами.
Создание пользователей
Добавьте переменную users, содержащую список пользователей, которых нужно добавить. Хороший вариант
расположить это в group_vars/all
или group_vars/groupname
, если вы хотите, чтобы пользователи
существовали только на определенных машинах.
Следующие атрибуты обязательны для каждого пользователя:
- username - Имя пользователя.
- name - Полное имя пользователя (поле gecos).
- home - Домашняя директория для создания (необязательно, по умолчанию /home/username).
- uid - Числовой идентификатор пользователя (необязательно). Это необходимо для консистентности uid между системами.
- gid - Числовой идентификатор группы (необязательно). В противном случае будет использоваться uid.
- password - Если указан хеш, то он будет использоваться, иначе аккаунт будет заблокирован.
- update_password - Может принимать значения 'always' или 'on_create'
- 'always' будет обновлять пароли, если они отличаются. (по умолчанию)
- 'on_create' будет устанавливать пароль только для вновь созданных пользователей.
- group - Необязательно, переопределение основной группы.
- groups - Список дополнительных групп для пользователя.
- append - Если да, добавит только группы, а не установит их только в списке groups (необязательно).
- profile - Блок строки для установки пользовательских оболочек.
- ssh_key - Это должен быть список SSH-ключей для пользователя (необязательно). Каждый SSH-ключ должен быть указан напрямую и не должен содержать переносов строк.
- generate_ssh_key - Нужно ли генерировать SSH-ключ для пользователя (необязательно, по умолчанию нет).
Кроме того, следующие элементы являются необязательными для каждого пользователя:
- shell - Оболочка пользователя. По умолчанию - /bin/bash. Значение можно настроить с помощью переменной users_default_shell, если вы хотите, чтобы все пользователи имели одну и ту же оболочку, но она отличается от /bin/bash.
- ssh_key_exclusive - Нужно ли удалять все остальные неуказанные ключи из файла authorized_keys (по умолчанию users_ssh_key_exclusive).
Пример:
---
users:
- username: foo
name: Foo Barrington
groups: ['wheel','systemd-journal']
uid: 1001
home: /local/home/foo
profile: |
alias ll='ls -lah'
ssh_key:
- "ssh-rsa AAAAA.... foo@machine"
- "ssh-rsa AAAAB.... foo2@machine"
groups_to_create:
- name: developers
gid: 10000
users_deleted:
- username: bar
name: Bar User
uid: 1002
Удаление пользователей
Переменная users_deleted
содержит список пользователей, которые больше не должны находиться
в системе, и они будут удалены при следующем запуске ansible. Формат такой же, как для добавления пользователей,
но единственным обязательным полем является username
.
Тем не менее, рекомендуется также сохранять поле uid
для справки, чтобы
числовые идентификаторы пользователей не были случайно перераспределены.
Вы можете дополнительно выбрать возможность удалить домашнюю директорию пользователя и почтовый ящик с
параметром remove
, и принудительно удалить файлы с параметром force
.
users_deleted:
- username: bar
uid: 1002
remove: yes
force: yes
ansible-galaxy install pcanham/ansible-role-users