Ansible: meilleure pratique pour maintenir la liste des sudoers
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'"
Se 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 à /etc/sudoers
?
1 réponses
Cette ligne n'ajoute pas réellement d'utilisateurs à sudoers, simplement en s'assurant que le groupe wheel
peut avoir une commande sudo for all sans mot de passe.
En ce qui concerne 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 aussi.
Le module Utilisateur vous permet de spécifier une liste exclusive de groupes ou simplement d'ajouter les groupes spécifiés aux groupes actuels qui l'utilisateur dispose déjà d'. Ceci est naturellement idempotent car un utilisateur ne peut pas être défini pour être dans un groupe plusieurs fois.
Un exemple de jeu peut 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 }}"