Ansible usa la palabra clave delegate_to para delegar tareas a la máquina especificada para ejecutar
Ejemplo de uso:
1. Configuración de hosts
- name: add host record to DC server
shell: 'echo "192.168.10.12 node2" >> /etc/hosts'
- name: add host record to all server
shell: 'echo "192.168.10.12 node2 " >> /etc/hosts'
delegate_to: 192.168.10.100
2. configuración del servidor ntp servidor
ntp realiza la configuración del servidor, cliente nep realiza tareas de tiempo para sincronizar el servidor.
- name: install ntp
shell: yum -y install ntp
- name: stop all ntp_install server
shell: systemctl stop ntpd && systemctl disable ntpd
- name: config ntp server
template: src=templates/ntp.conf dest=/etc/ntp.conf
run_once: true
delegate_to: "{{ntp.ntp_server}}"
- name: start ntp server
shell: systemctl start ntpd && systemctl enable ntpd
run_once: true
delegate_to: "{{ntp.ntp_server}}"
- name: add crontab
cron: name='syn time' minute=*/1 job='/usr/sbin/ntpdate -u {{ntp.ntp_server}} ; /usr/sbin/hwclock -w'
- name: reload crond.service
shell: systemctl reload crond.service
Ansible se ejecuta localmente mediante el uso de la palabra clave local_action para delegar tareas
Ejemplo de uso:
1. Configuración de hosts
- name: add host record to localhost
local_action: shell 'echo "192.168.10.12 node2 " >> /etc/hosts'
Referencia: https://www.ibm.com/developerworks/cn/linux/1608_lih_ansible/index.html