user-make

cans.user-make

Статус сборки Ansible Galaxy Лицензия

Роль Ansible для создания множества пользователей на целевых хостах.

Как это работает?

Каждый пользователь для создания должен быть определён с помощью элемента следующим образом:

usermake_users:
  - name: "johndoe"                # обязательный
    gecos: "John Doe,,,"           # по умолчанию: пропустить
    groups: "sudo,adm"             # по умолчанию: пропустить
    passwordless_sudo: true        # по умолчанию: usermake_sudoer_passwordless
    ssh_key_create: false          # по умолчанию: true
    ssh_key_upload_to_ec2: true    # по умолчанию: usermake_ssh_key_upload_to_ec2
    ssh_key_download: true         # по умолчанию: usermake_ssh_key_download
    suoder: true                   # по умолчанию: usermake_sudoer
    system: false                  # по умолчанию: false
    upload_my_key: false           # по умолчанию: usermake_upload_ssh_key_to_target
    remove: false                  # по умолчанию: пропустить или usermake_remove
    home_dir: "/home/jdoe"         # по умолчанию: usermake_home_base_dir/name

Вот значение каждой переменной, найденной в элементе:

  • name: имя для входа нового пользователя;
  • gecos: данные GECOS, которые нужно прикрепить к новому пользователю;
  • groups: список групп, к которым должен принадлежать пользователь. Группы, указанные здесь, должны существовать a priori (см. также следующий раздел);
  • passwordless_sudo: если установлено в true, пользователь сможет использовать другую личность без ввода пароля;
  • remove: когда значение state элемента равно 'absent', указывает, нужно ли удалять файлы, принадлежащие пользователю, при его удалении (может быть медленно);
  • ssh_key_create: нужно ли генерировать пару SSH-ключей для нового пользователя;
  • ssh_key_download: нужно ли скачивать сгенерированный пользователем SSH публичный ключ в папку на локальном компьютере (см. также usermake_ssh_key_download_dir, определённый ниже);
  • ssh_key_upload_to_ec2: нужно ли загружать сгенерированный пользователем SSH публичный ключ в систему управления ключами AWS EC2;
  • state: нужно ли создать или удалить пользователя, указав значения 'present' или 'absent' соответственно (по умолчанию: 'present');
  • sudoer: если установлено в true, пользователь получит права sudo (см. также переменную usermake_sudoer);
  • system: должен ли пользователь быть системным (с низким UID и отключённым входом);
  • upload_my_key: нужно ли загружать ваш локальный SSH-ключ на целевой хост.

Все эти значения, если определены, переопределят значения по умолчанию, определённые в разделе переменные роли ниже.

Что эта роль не может делать?

Она не может добавлять пользователей в новые группы, будет переопределять группы пользователя с заданным списком.

Требования

У этой роли нет специфических требований.

Переменные роли

Все названия переменных, используемые в этой роли, имеют префикс usermake_.

  • usermake_home_base_dir: позволяет переопределить путь к каталогу, где создаются домашние директории пользователей (по умолчанию: /home);
  • usermake_remove: нужно ли удалять домашнюю директорию пользователей, когда они удаляются (по умолчанию: false);
  • usermake_ssh_key_create: нужно ли создавать пару SSH-ключей для новых пользователей по умолчанию (по умолчанию: true);
  • usermake_ssh_key_download: нужно ли локально загружать SSH-ключи созданных пользователей;
  • usermake_ssh_key_download_dir: каталог, в котором будут храниться загруженные публичные SSH-ключи (по умолчанию: {{ playbook_dir }}/collected-keys);
  • usermake_ssh_key_download_dir_mode: режим каталога для хранения загруженных публичных SSH-ключей (по умолчанию: 0750);
  • usermake_ssh_key_passphrase: стандартная фраза для защиты частных SSH-ключей. Рекомендуется предоставлять фразы другими способами (по умолчанию: omit [без фразы]);
  • usermake_sudoer: должны ли создаваемые пользователи быть sudo-пользователями по умолчанию (по умолчанию: false); Примечание: прежде чем предоставлять повышенные привилегии какому-либо пользователю, убедитесь, что дистрибутив предоставляет пакет sudo, который определяет группу sudo или sudoers, уже предоставляющую некоторые привилегии её членам. Настоящий механизм больше предназначен для предварительной настройки пользователей с высокими привилегиями на образах дисков для упрощения настройки и предоставления. Не для управления более детальными привилегиями пользователей или приложений;
  • usermake_sudoer_dir: каталог на целевых машинах, в котором размещены файлы правил sudoer (по умолчанию: /etc/sudoers.d);
  • usermake_system: должны ли создаваемые пользователи быть системными пользователями по умолчанию (по умолчанию: false);
  • usermake_upload_ssh_key_to_target: нужно ли загружать публичный SSH-ключ локального пользователя на целевой хост. Полезно, если вы планируете выполнять задачи от имени этого пользователя в следующих задачах или ролях вашего плейбука (по умолчанию: true);
  • usermake_upload_ssh_key_file: когда usermake_upload_ssh_key_to_target или значение upload_my_key элемента пользователя установлено в true, указывает файл, из которого следует читать публичный ключ для загрузки (по умолчанию: ~/.ssh/id_rsa.pub);
  • usermake_user_groups: группы, в которые будут автоматически добавлены создаваемые пользователи (по умолчанию: omit);
  • usermake_users: список пользователей для создания, определённых элементами, как описано выше (по умолчанию: []).

Зависимости

У этой роли нет зависимостей.

Пример плейбука

Создание нескольких пользователей:

- hosts: servers
  roles:
     - role: cans.user-make
       usermake_users:
         - name: "alice"
           groups: "sudo,adm"
           system: "no"
           ssh_key_create: "yes"
         - name: "bob"
           gecos: "Bob no sponge,,,"
           system: "yes"
           ssh_key_create: true

Удаление некоторых пользователей:

- hosts: servers
  roles:
    - role: cans.user-make
      usermake_users:
        - name: "alice"
          state: "absent"
          remove: true  # Удалить все файлы пользователя
        - name: "bob"
          state: "absent"

Вы также можете ознакомиться с тестами, которые находятся в tests/test.yml для более подробных примеров использования этой роли.

Задачи

Реализовать интеграционное тестирование для загрузки ключей AWS.

Лицензия

GPLv2

Информация об авторе

Copyright © 2017, Nicolas CANIART.

О проекте

Simple Role to create a given list of users

Установить
ansible-galaxy install cans/user-make
Лицензия
gpl-2.0
Загрузки
134
Владелец