Управление списком локальных пользователей через ansible
У меня есть серверы Linux, которые используют локальные учетные записи, и я хотел бы найти способ, с помощью ansible, поддерживать их.
Моя цель - сохранить один и тот же список пользователей на всех серверах и иметь возможность эффективно удалять или добавлять нового пользователя на всех серверах, когда это необходимо. Я также хотел бы время от времени толкать книгу, чтобы исправить все, что было изменено на одном сервере без ответа.
Вот что я получил так далеко:
vars:
users:
- login: test1
group: group1
- login: test2
group: group1
tasks:
- name: Maintaining list of users
user: name={{ item.login }} group={{ item.group }} state=present
with_items:
- "{{ users }}"
Этот playbook работает, но мне нужно добавить шаг, который бы проверял, существует ли пользователь, а если нет, то создайте его и назначьте временный пароль.
Есть ли способ сообщить ansible для создания пользователя, как в приведенном выше списке, но также сказать ansible дать пользователю пароль, если он не существует?
Спасибо. Тьерри.
1 ответ
Предполагая, что вы используете Ansible 1.3 или новее, вы можете указать пароль для пользовательского модуля и добавить аргумент update_password=on_create
чтобы установить пароль, только если пользователь только что создан. Если вам нужно, чтобы пароли не были согласованы между запусками, вы можете поставить перед ним другую задачу для генерации случайного пароля или вы можете добавить задачу, которая будет генерировать случайный пароль для пользователя (хотя я я не уверен на 100%, если это возможно).