Назад | Перейти на главную страницу

Управление списком локальных пользователей через ansible

У меня есть серверы 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%, если это возможно).