with playbook password keygen create authorized_key python unix ansible user-management

python - playbook - authorized_key ansible



Ansible: buenas prácticas para mantener la lista de sudoers (1)

En la documentation , hay un ejemplo del uso del módulo lineinfile para editar /etc/sudoers .

- lineinfile: "dest=/etc/sudoers state=present regexp=''^%wheel'' line=''%wheel ALL=(ALL) NOPASSWD: ALL''"

Se siente un poco hackish.

Asumí que habría algo en el módulo de user para manejar esto, pero no parece haber ninguna opción.

¿Cuáles son las mejores prácticas para agregar y eliminar usuarios a /etc/sudoers ?


Esa línea en realidad no agrega usuarios a los sudoers, simplemente se asegura de que el grupo wheel pueda tener sudo sin contraseña para todos los comandos.

En cuanto a agregar usuarios a /etc/sudoers esto se hace mejor agregando usuarios a los grupos necesarios y luego otorgando a estos grupos el acceso relevante a sudo. Esto es cierto cuando no estás usando Ansible también.

El módulo de usuario le permite especificar una lista exclusiva de grupo o simplemente anexar los grupos especificados a los actuales que el usuario ya tiene. Esto es naturalmente idempotente ya que un usuario no puede definirse para estar en un grupo varias veces.

Un ejemplo de juego podría ser algo como esto:

- 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 }}"