user-make
cans.user-make
Роль 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.
ansible-galaxy install cans/user-make