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