我想在目标主机“A”上运行一个包含多个任务的剧本。此外,我想在 DNS 服务器主机“B”上为主机“A”设置 DNS 记录。最好只使用一个剧本。剧本的主机将设置为“全部”,设置 DNS 记录的剧本将仅限于主机“B”。主机“B”也将被修复并可以进行硬编码,它应该使用主机“A”的 ansible_hostname 作为参数。有什么想法可以实现吗?
答案1
您可以使用delegate_to
。
- name: set dns record
win_dns_record:
name: "{{ inventory_hostname_short }}"
type: A
value: "{{ item }}"
zone: "{{ ansible_domain }}"
delegate_to: 'b'
loop: "{{ ansible_all_ipv4_addresses }}"
该任务将循环遍历机器的所有 IP 地址并针对“B”运行以创建 DNS 条目。可能不是最佳配置,但它显示了您需要的一切。