Вопрос: Как добавить пользователя в несколько групп в Ansible?


Я не могу добавить пользователя в несколько групп, я продолжаю получать msg: для этого модуля требуются аргументы key = value.

Это часть кода, который я пытаюсь:

- name: make a new user
  user: name=user
        state=present
        groups="group1", "group2", "group3"
        comment="comment"

В документации написано: Groups = Помещает пользователя в этот список групп с разделителями-запятыми. При установке в пустую строку ('groups =') пользователь удаляется из всех групп, кроме основной группы.

Я пробовал с «группой», «группой» и без двоеточий и по-прежнему получал ту же ошибку.

http://docs.ansible.com/user_module.html


7
2018-01-12 18:47


Источник




Ответы:


Правильный синтаксис:

- name: make a new user
  user: name=user
        state=present
        groups="group1, group2, group3"
        comment="comment"

6
2018-01-12 19:08





В коде, который вы отправили, есть две проблемы:

  1. Чтобы передать несколько значений groups, используйте значения, разделенные запятыми, без пробелов между ними: groups: group1,group2
  2. В YAML, когда вы помещаете каждый ключ в свою линию, поменяйте = для :

Вот пример рабочего кода:

- name: make a new user
  user: 
    name: johnsmith
    state: present
    groups: group1,group2
    comment: "comment"
    append: no # If yes, will only add groups, not set them to just the list in groups.

4
2018-06-01 18:26



Отборочным «без пробелов между» является важный! Я просто сожгла это сама (см. Это открытое Несчастный вопрос). - evadeflow


Я получаю группу «group2» не существует. (Но без кавычек, чтобы показать дополнительное пространство).

Правильный способ

groups={{ group }},{{ sudo_group }}

2
2018-04-04 09:43



Что касается ответа, что «group2 не существует», группа должна существовать до того, как вы добавите пользователя в группу. Добавление пользователя и указание пользователя является членом группы, которая не существует, не создает группу. При добавлении пользователей и групп сначала создавайте группы, а затем добавляйте своих пользователей. (Единственное исключение - это группа, созданная одновременно с пользователем, в системах, использующих группу для пользователя (большинство Linux)). - Andrew Edelstein
@AndrewEdelstein: вы на 100% правильны, но в этом случае есть более тонкая / гнусная проблема. В сообщении об ошибке говорится: " group2" does not exist", Я добавил цитаты вокруг строки " group2" чтобы подчеркнуть тот факт, что он содержит ведущее пространство, Ansible дает это сообщение об ошибке, даже если группа с именем "group2" (нет ведущего пространства) существует [!] Я считаю, что a ошибка, хотя, возможно, существуют технические причины, из-за которых Ansible затрудняет удаление пробелов из этих токенов. - evadeflow


Вышеуказанные ответы неверны. Правильный способ определения переменной:

groups: group1,group2 

Затем использовать:

action: user groups={{user.groups}}

2
2018-04-17 04:21



нет установленного порядка отображения ответов .. «выше» может означать одно дело для вас, а другое - для кого-то другого. Или, может быть, другое дело для вас, завтра. - dan3
@ dan3 спасибо за разъяснение; p - Florian Heigl