Ajout d'un utilisateur à un groupe supplémentaire à l'aide de ansible

55

Comment puis-je ajouter un utilisateur à des groupes supplémentaires dans ansible? Je ne veux pas qu'un groupe de groupes existant soit remplacé, mais seulement ajouter l'utilisateur au sudogroupe.

vdboor
la source

Réponses:

48

Selon le module utilisateur, vous pouvez utiliser ceci:

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

Vous pouvez simplement ajouter le groups=groupnameet append=yesles ajouter à un utilisateur existant lorsque vous les créez.

art3mis
la source
2
Merci, append=yesc'est bien ce que je recherche!
vdboor
1
Il semble y avoir un problème avec ceci: que se passe-t-il si l'utilisateur existe déjà et que je souhaite simplement les ajouter ou les supprimer d'un groupe? Je ne suis pas sûr à 100% mais je pense que l'attribut "groupe" n'est pris en compte que lors de la création de l'utilisateur.
jlecour
2
J'ai vraiment un problème avec cette réponse acceptée, car la question ne dit pas "créer un utilisateur et l'ajouter à un groupe spécifique". Si nous venons d'une recherche Google en raison du titre de la question, nous voudrions probablement ajouter un utilisateur existant à un groupe.
Daniel F
72

S'il {{ user }}existe déjà dans le système, vous devez utiliser les éléments suivants pour simplement l'ajouter à un groupe:

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

Pour l'ajouter à un ensemble de groupes, vous pouvez utiliser une liste séparée par des virgules, par exemple groups: admin,sudo.

Sachez simplement que si vous omettez append: yes, votre utilisateur sera supprimé de tous les autres groupes, selon la page de manuel usermod . Cela serait utile si vous souhaitez utiliser une liste spécifique de groupes auxquels un utilisateur devrait appartenir.

Teresa e Junior
la source
12
… Et veillez à ne pas écrire group:sans le s, car cela modifiera le GID principal.
Serge Stroobandt
... et méfiez-vous que si l'utilisateur n'existe pas, il sera créé!
EM0
@ EM0 Oui, le usermodule est supposé créer des utilisateurs s'ils n'existent pas. Toutefois, l'utilisateur doit revoir son code s'il tente de modifier des utilisateurs qui ne sont même pas supposés exister.
Teresa e Junior le