I am a newbie to Ansible and trying to figure out how to synchronize between 3 hosts based on condition. Below are details:
- There are 3 nodes and based on which node is primary (I was able to get a custom fact set for it) need to delegate to that host (which runs synchronize from that host to other two hosts).
- Custom fact basically is value 1 or 0 (1 means Primary/Master and 0 means not).
- I am unable to get the hostname (primary hostname) value to include into the synchronize steps.
Below is the playbook I have. How do I make synchronize read the "primary" hostname value to run the next steps ?
---
- name: Playbook for rsync
become: yes
hosts: clients
gather_facts: True
tasks:
- name: Task to rsync from Primary server
synchronize:
src: "{{ item.source }}"
dest: "{{ item.dest }}"
with_items:
- { source: '/rsynctest/', dest: '/rsynctest/' }
- { source: '/rsynctest1/', dest: '/rsynctest1/' }
delegate_to: "{{ ansible_hostname }}"
when:
- ansible_local.determine.isprimary == "1"
Thanks
-Raj