I made something that is working but I look for something more 'elegant' ;)
- name: Wait for DNS propagation
ansible.builtin.shell:
cmd: host "{{ vm_fqdn }}"
register: dns_result
until: dns_result.rc == 0
retries: 30
delay: 10
But previously I tried with a lookup and the community.general.dig
- name: Wait for DNS propagation
ansible.builtin.set_fact:
dns_result: "{{ lookup('community.general.dig', vm_fqdn)}}"
until: dns_result == vm_ip
retries: 30
delay: 10
Unfortunately, even I added a register I couldn't get the dns_result variable updated after multiple tries. It's like the lookup happens only once on the first iteration, but is not 're-triggered' on the next try. So maybe it is the behavior of lookup or something else, but I'm curious to know.