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

О проекте

User management role

Установить
ansible-galaxy install taktus/users
Лицензия
mit
Загрузки
64
Владелец