103 votes

Ajout d'un utilisateur à un groupe supplémentaire en utilisant ansible

Comment ajouter un utilisateur à des groupes supplémentaires avec Ansible ? Par exemple, je voudrais ajouter un utilisateur au groupe sudo sans remplacer l'ensemble des groupes existants de l'utilisateur.

150voto

Teresa e Junior Points 1425

Si {{ user }} existe déjà dans le système, vous devez utiliser ce qui suit 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 une virgule, par exemple groups: admin,sudo .

Attention, si vous omettez append: yes votre utilisateur sera supprimé de tous les autres groupes, conformément à la politique de l'UE. page de manuel usermod . Cela serait utile si vous voulez utiliser une liste spécifique de groupes auxquels un utilisateur devrait appartenir.

25 votes

Et attention à ne pas écrire group: sans le s car cela changera le GID primaire.

0 votes

... et attention, si l'utilisateur n'existe pas, il sera créé !

0 votes

@EM0 Oui, le user est censé créer des utilisateurs s'ils n'existent pas, cependant, l'utilisateur doit revoir son code s'il essaie de modifier des utilisateurs qui ne sont même pas censés exister.

75voto

art3mis Points 898

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=groupname y append=yes pour les ajouter à un utilisateur existant lorsque vous les créez

3 votes

Merci, le append=yes est en effet ce que je recherche !

2 votes

Il semble y avoir un problème : que se passe-t-il si l'utilisateur existe déjà et que je veux simplement l'ajouter ou le 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.

5 votes

J'ai vraiment un problème avec le fait que ce soit la 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 très probablement ajouter un utilisateur existant à un groupe.

24voto

Veuillez noter que {{ user }} a été changé en {{ ansible_user }} dans les versions récentes d'Ansible ( https://github.com/ansible/ansible/blob/c600ab81ee/lib/ansible/playbook/play_context.py#L46-L55 ). Vous pouvez également utiliser ansible_ssh_user - c'est la même chose. Donc, le code mis à jour de Teresa e Junior ressemble à :

- name: adding existing user "{{ ansible_user }}" to group sudo
   user:
     name: "{{ ansible_user }}"
     groups: sudo
     append: yes
   become: yes

Plus de réparations :

  • Utilisez des guillemets doubles pour que la variable s'étende
  • Ajouter become: yes car il faut des privilèges d'administration pour modifier le fichier des groupes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X