Dans la documentation , il y a un exemple d'utilisation du module lineinfile
pour éditer /etc/sudoers
.
- lineinfile: "dest=/etc/sudoers state=present regexp='^%wheel' line='%wheel ALL=(ALL) NOPASSWD: ALL'"
Sent un peu hackish.
J'ai supposé qu'il y aurait quelque chose dans le module user
pour gérer cela, mais il ne semble pas y avoir d'options.
Quelles sont les meilleures pratiques pour ajouter et supprimer des utilisateurs dans /etc/sudoers
?
Cette ligne n'ajoute pas réellement d'utilisateurs à sudoers, s'assurant simplement que le groupe wheel
peut avoir la commande Sudo sans mot de passe pour tous.
Quant à l'ajout d'utilisateurs à /etc/sudoers
il est préférable d'ajouter des utilisateurs aux groupes nécessaires, puis de donner à ces groupes l'accès approprié à Sudo. Cela est vrai lorsque vous n'utilisez pas Ansible également.
Le module utilisateur vous permet de spécifier une liste exclusive de groupes ou d'ajouter simplement les groupes spécifiés aux groupes actuels que l'utilisateur possède déjà. Ceci est naturellement idempotent car un utilisateur ne peut pas être défini pour être dans un groupe plusieurs fois.
Un exemple de jeu pourrait ressembler à ceci:
- hosts: all
vars:
sudoers:
- user1
- user2
- user3
tasks:
- name: Make sure we have a 'wheel' group
group:
name: wheel
state: present
- name: Allow 'wheel' group to have passwordless Sudo
lineinfile:
dest: /etc/sudoers
state: present
regexp: '^%wheel'
line: '%wheel ALL=(ALL) NOPASSWD: ALL'
validate: visudo -cf %s
- name: Add sudoers users to wheel group
user:
name: "{{ item }}"
groups: wheel
append: yes
with_items: "{{ sudoers }}"