Добавление пользователя в дополнительную группу с помощью ansible

55

Как я могу добавить пользователя в дополнительные группы в ansible? Я не хочу заменять существующий набор групп, а только добавить пользователя в sudoгруппу.

vdboor
источник

Ответы:

48

В соответствии с модулем пользователя вы можете использовать это:

- name: Adding user {{ user }}  
  user: name={{ user }}
        group={{ user }}
        shell=/bin/bash
        password=${password}
        groups=sudo
        append=yes

Вы можете просто добавить groups=groupnameи append=yesдобавить их существующему пользователю при их создании.

art3mis
источник
2
Спасибо, append=yesэто действительно то, что я ищу!
vdboor
1
Кажется, есть проблема с этим: что, если пользователь уже существует, и я просто хочу добавить или удалить его из группы? Я не уверен на 100%, но думаю, что атрибут «группа» учитывается только при создании пользователя.
Jlecour
2
У меня действительно есть проблема с тем, что это принятый ответ, так как в вопросе не говорится «создайте пользователя и добавьте его в определенную группу». Если мы получаем результаты поиска в Google из-за названия вопроса, мы, скорее всего, захотим добавить существующего пользователя в группу.
Даниэль Ф
72

Если он {{ user }}уже существует в системе, вы должны использовать следующее, чтобы просто добавить его в группу:

- name: adding existing user '{{ user }}' to group sudo
  user:
    name: '{{ user }}'
    groups: sudo
    append: yes

Чтобы добавить его в набор групп, вы можете использовать, например, список через запятую groups: admin,sudo.

Просто помните append: yes, что если вы пропустите , ваш пользователь будет удален из всех других групп, согласно man-странице usermod . Это было бы полезно, если вы хотите использовать определенный список групп, к которым должен принадлежать пользователь.

Тереза ​​и Джуниор
источник
12
... и будьте осторожны, чтобы не писать group:без s, так как это изменит основной GID.
Серж
... и будьте осторожны, если пользователь не существует, он будет создан!
EM0
@ EM0 Да, userмодуль должен создавать пользователей, если они не существуют, однако пользователь должен просмотреть свой код, если он пытается изменить пользователей, которые даже не должны существовать.
Тереза ​​и Джуниор