De la documentación de Ansible :
Delegación Esto no es realmente una actualización continua, pero aparece con frecuencia en esos casos.
Si desea realizar una tarea en un host con referencia a otros hosts, use la palabra clave 'delegate_to' en una tarea. Esto es ideal para colocar nodos en un grupo de carga equilibrada o eliminarlos. También es muy útil para controlar ventanas de interrupción. Tenga en cuenta que no tiene sentido delegar todas las tareas, depurar, agregar_host, incluir, etc. siempre se ejecutan en el controlador. Usar esta opción con la palabra clave 'serial' para controlar el número de hosts que se ejecutan al mismo tiempo también es una buena idea:
---
- hosts: webservers
serial: 5
tasks:
- name: take out of load balancer pool
command: /usr/bin/take_out_of_pool {{ inventory_hostname }}
delegate_to: 127.0.0.1
- name: actual steps would go here
yum:
name: acme-web-stack
state: latest
- name: add back to load balancer pool
command: /usr/bin/add_back_to_pool {{ inventory_hostname }}
delegate_to: 127.0.0.1
Estos comandos se ejecutarán en 127.0.0.1, que es la máquina que ejecuta Ansible. También hay una sintaxis abreviada que puede usar por tarea: 'local_action'. Aquí está el mismo libro de jugadas que el anterior, pero usando la sintaxis abreviada para delegar a 127.0.0.1:
---
# ...
tasks:
- name: take out of load balancer pool
local_action: command /usr/bin/take_out_of_pool {{ inventory_hostname }}
# ...
- name: add back to load balancer pool
local_action: command /usr/bin/add_back_to_pool {{ inventory_hostname }}
Un patrón común es utilizar una acción local para llamar a 'rsync' para copiar archivos de forma recursiva a los servidores administrados. Aquí hay un ejemplo:
---
# ...
tasks:
- name: recursively copy files from management server to target
local_action: command rsync -a /path/to/files {{ inventory_hostname }}:/path/to/target/
Tenga en cuenta que debe tener claves SSH sin frase de contraseña o un agente ssh configurado para que esto funcione; de lo contrario, rsync deberá solicitar una frase de contraseña.
sudo: no
en el escenario de la delegación