users
Ansible Роль: пользователи
Роль для управления пользователями на системе.
Настройка роли
users_create_per_user_group
(по умолчанию: true) - при создании пользователей также создается группа с таким же именем, и она становится основной группой пользователя.users_group
(по умолчанию: users) - еслиusers_create_per_user_group
не установлено, то это будет основной группой для всех созданных пользователей.users_default_shell
(по умолчанию: /bin/bash) - оболочка по умолчанию, если для пользователя не указана другая.users_create_homedirs
(по умолчанию: true) - создавайте домашние директории для новых пользователей. Установите на false, если вы управляете домашними директориями отдельно.
Создание пользователей
Добавьте переменную пользователей, содержащую список пользователей, которых нужно добавить. Хорошее место для этого - в 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.is_system_user
- Установите наTrue
, чтобы создать системного пользователя.
Пример:
---
users:
- username: foo
name: Foo Bar
groups: ['admin','systemd-journal']
uid: 1005
home: /local/home/foo
profile: |
alias ll='ls -ahl'
ssh_key:
- "ssh-rsa AAAAA.... foo@server"
- "ssh-rsa AAAAB.... foo2@server"
groups_to_create:
- name: developers
gid: 20000
Генерация пароля в хеше:
# На Debian/Ubuntu (через пакет "whois")
mkpasswd --method=SHA-512 --rounds=4096
# OpenSSL (примечание: это создаст только md5crypt. Хотя лучше, чем открытый текст, его не следует считать полностью безопасным)
openssl passwd -1
# Python (измените значения пароля и соли)
python -c "import crypt, getpass, pwd; print crypt.crypt('password', '\$6\$SALT\$')"
# Perl (измените значения пароля и соли)
perl -e 'print crypt("password","\$6\$SALT\$") . "\n"'
Удаление пользователей
Переменная users_deleted
содержит список пользователей, которых больше не должно быть в системе, и они будут удалены при следующем запуске ansible. Формат такой же, как для добавляемых пользователей, но обязательное поле только username
.
Тем не менее, рекомендуется также сохранять поле uid
для ссылки, чтобы числовые идентификаторы пользователей не были случайно повторно использованы.
Вы также можете выбрать возможность удалить домашнюю директорию пользователя и почтовый ящик с помощью параметра remove
и принудительно удалить файлы с помощью параметра force
.
users_deleted:
- username: bar
uid: 1003
remove: yes
force: yes
Зависимости
Нет.
Лицензия
MIT
ansible-galaxy install taktus/users