ansible_users
ansible-users
Роль для управления пользователями в системе.
Это форк singleplatform-eng.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, если вы управляете домашними каталогами отдельно.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
- Это может быть 'всегда' или 'при создании'- 'всегда' будет обновлять пароли, если они отличаются. (по умолчанию)
- 'при создании' устанавливает пароль только для новых пользователей.
group
- Необязательное переопределение основной группы.groups
- Список дополнительных групп для пользователя.append
- Если да, то будут добавлены только группы, а не установлены в список groups (по желанию).profile
- Строковый блок для настройки пользовательских профилей оболочки.ssh_key
- Это должен быть список SSH ключей для пользователя (по желанию). Каждый SSH ключ должен быть указан непосредственно и не содержать переносов строк.generate_ssh_key
- Генерировать ли SSH ключ для пользователя (по желанию, по умолчанию - нет).
Кроме того, следующие элементы являются необязательными для каждого пользователя:
shell
- Оболочка пользователя. По умолчанию это /bin/bash. Значение по умолчанию можно настроить с помощью переменной users_default_shell, если вы хотите, чтобы все пользователи имели одинаковую оболочку, но она отличается от /bin/bash.
Пример:
---
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 chasinglogic/ansible-users