Управление пользователями и группами
Одним из наиболее распространенных видов использования специальных команд Ansible в моем повседневном использовании является управление пользователями и группами. Не знаю, сколько раз мне пришходилось обращаться к поисковикам и мануалам только для того, чтобы посмотреть, какие аргументы нужно использовать для создания пользователя с домашней папкой или без нее, добавить пользователя к определенным группам и т. д.
Модули user и group делают все довольно простым в любой сборке Linux.
Давайте добавим группу admin на серверы приложений для администраторов сервера:
ansible app -s -m group -a "name=admin state=present"
Модуль group довольно прост; можно удалить группу, установив state=absent
, задать идентификатор группы с помощью gid=[gid]
и указать, что группа является системной system=yes
.
Теперь добавим пользователя, johndoe на серверы приложений с группой admin, и создадим для него домашнюю папку в /home/johndoe (расположение по умолчанию для большинства дистрибутивов Linux):
ansible app -s -m user -a "name=johndoe group=admin createhome=yes"
Если требуется автоматически создать SSH key для нового пользователя, можно выполнить ту же команду с дополнительным параметром generate_ssh_key=yes
. Можно также установить UID пользователя, передав идентификатор uid=[uid]
и пароль с password=[encrypted-password]
.
Как удалить учетную запись?
ansible app -s -m user -a "name=johndoe state=absent remove=yes"
В официальной документации User module подробно разъясняются все возможности.