Wie kann ich einen Benutzer in Ansible mehreren Gruppen hinzufügen?

8

Ich kann keinen Benutzer zu mehreren Gruppen hinzufügen. Ich erhalte ständig die Nachricht: Für dieses Modul sind Schlüssel = Wert-Argumente erforderlich.

Dies ist der Code, den ich versuche:

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

In der Dokumentation heißt es: Gruppen = Setzt den Benutzer in diese durch Kommas getrennte Liste von Gruppen. Wenn die leere Zeichenfolge ('groups =') festgelegt ist, wird der Benutzer aus allen Gruppen mit Ausnahme der primären Gruppe entfernt.

Ich habe es mit "Gruppe", "Gruppe" und ohne Doppelpunkte versucht und erhalte immer noch den gleichen Fehler.

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

Hyperfokus
quelle

Antworten:

7

Die richtige Syntax lautet:

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

Es gibt zwei Probleme mit dem Code, den Sie gepostet haben:

  1. groupsVerwenden Sie zum Übergeben mehrerer Werte durch Kommas getrennte Werte ohne Leerzeichen dazwischen:groups: group1,group2
  2. Wenn Sie in YAML jeden Schlüssel in eine eigene Zeile setzen, tauschen Sie das =für aus:

Hier ist ein Beispiel für Arbeitscode:

- 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.
Jeff Widman
quelle
Das Qualifikationsmerkmal "ohne Leerzeichen dazwischen" ist wichtig ! Ich habe mich gerade selbst davon verbrannt (siehe diese offene Ansible-Ausgabe ).
Evadeflow
2

Ich bekomme Gruppe "Gruppe2" existiert nicht. (Aber ohne die Anführungszeichen, um den zusätzlichen Platz anzuzeigen).

Richtiger Weg ist

groups={{ group }},{{ sudo_group }}
user213843
quelle
Für die Antwort "Gruppe2 existiert nicht" muss eine Gruppe existieren, bevor Sie der Gruppe einen Benutzer hinzufügen. Durch Hinzufügen eines Benutzers und Angeben, dass der Benutzer Mitglied einer Gruppe ist, die nicht vorhanden ist, wird die Gruppe nicht erstellt. Erstellen Sie beim Hinzufügen von Benutzern und Gruppen zuerst die Gruppen und dann Ihre Benutzer. (Die einzige Ausnahme ist die Gruppe, die gleichzeitig mit dem Benutzer auf Systemen erstellt wird, die Gruppen pro Benutzer verwenden (die meisten Linux-Systeme).)
Andrew Edelstein
@ AndrewEdelstein: Sie haben 100% Recht, aber in diesem Fall gibt es ein subtileres / schändliches Problem. Die Fehlermeldung lautet : " group2" does not exist". Ich habe die Zeichenfolge " group2"in Anführungszeichen gesetzt, um die Tatsache hervorzuheben, dass sie ein führendes Leerzeichen enthält . Ansible gibt diese Fehlermeldung auch dann aus, wenn eine Gruppe mit dem Namen "group2"(kein führendes Leerzeichen) vorhanden ist [!]. Ich halte dies für einen Fehler , obwohl es möglicherweise technische Gründe gibt, die es Ansible erschweren, Leerzeichen von diesen Token zu entfernen.
Evadeflow
2

Die obigen Antworten sind falsch. Der richtige Weg, um eine Variable zu definieren:

groups: group1,group2 

Dann zu verwenden:

action: user groups={{user.groups}}
mbdev
quelle
2
Es gibt keine festgelegte Reihenfolge für die Anzeige von Antworten. "oben" kann für Sie eine Sache und für eine andere eine andere bedeuten. Oder morgen sogar etwas anderes als du.
Dan3