У меня есть серверы Linux, которые используют локальные учетные записи, и я хотел бы найти способ с помощью ansible их поддерживать.
Моя цель - сохранить один и тот же список пользователей на всех серверах и иметь возможность эффективно удалять или добавлять нового пользователя на всех серверах, когда это необходимо. Я также хотел бы время от времени запускать playbook, чтобы исправить все, что было изменено на одном сервере без доступа.
Вот что у меня получилось:
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 }}"
Этот сценарий работает, но мне нужно добавить шаг, который проверял бы, существует ли уже пользователь, а если нет, то создайте его и назначьте временный пароль.
Есть ли способ указать ansible для создания пользователя, как в этой книге выше, но также указать ansible, чтобы дать пользователю пароль, если он не существует?
Спасибо. Тьерри.
Предполагая, что вы используете Ansible 1.3 или новее, вы можете указать пароль для пользовательского модуля и добавить аргумент update_password=on_create
чтобы он устанавливал пароль только в том случае, если пользователь только что создан. Если вам нужно, чтобы пароли не согласовывались между запусками, вы можете поставить перед этим еще одну задачу, чтобы сгенерировать случайный пароль, или вы можете добавить задачу, которая будет генерировать случайный пароль для каждого пользователя (хотя я м не уверен на 100%, если это возможно).