Estoy realizando un proyecto en Ansible y cuando estas realizando ciertas tareas sencillas como instalar o copiar datos a los nodos donde estas configurado en el inventory es mas o menos sencillo. Pero cuando quieres ejecutar tareas específicar en un nodo y no en el resto etc. las tareas se complican.
una tarea sencilla seria que fallara en las máquinas donde tienes cierta version de S.O. por ejemplo para controlar la distribución se haria de la siguiente manera.
- name: check Distribution
ansible.builtin.fail:
msg: The system opetative must be Ubuntu and version 20 or getter
when: ansible_distribution | lower != "ubuntu" or ansible_distribution_major_version| int < 20
Otra de las tareas que me llevó tiempo es como te puedes impersonar en otro usuario para eso tienes que instalar un paquete
- name: install setfacl support copy temp files with other users.
ansible.builtin.apt: pkg=acl
become: true