Quella linea non sta in realtà aggiungendo utenti a sudoers, ma semplicemente assicurandosi che il gruppo wheel
possa avere sudo senza password per tutti i comandi.
Per quanto riguarda l'aggiunta di utenti a /etc/sudoers
, è meglio farlo aggiungendo gli utenti ai gruppi necessari e quindi dando a questi gruppi l'accesso pertinente a sudo. Questo è vero anche quando non usi Ansible.
Il user module consente di specificare un elenco esclusivo di gruppo o di aggiungere semplicemente i gruppi specificati a quelli correnti che l'utente ha già. Questo è naturalmente idempotente in quanto non è possibile definire un utente in un gruppo più volte.
Un gioco esempio potrebbe essere simile a questa:
- 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 }}"
'validate: visudo -cf% s' come attributo della task' lineinfile' farà in modo che non si scherza qualcosa, eseguendo prima attraverso il comando di convalida. – xenithorb