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?

24
demandé sur chishaku 2015-10-27 06:20:33

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 }}"
43
répondu ydaetskcoR 2017-03-02 15:19:30