以下是基本用例:
我有一个我要设置的NGINX反向代理,所以我特定一个只在" nginx"上运行的游戏。基。
然而,为了知道反向代理的ips,我需要从"上游"收集事实。组。这不会发生,因为游戏没有在"上游"上运行setup
。
This answer包含我之前使用过的解决方案,但我希望能够将其全部自包含在单个主机播放中,我可以独立于其他主机播放。
答案 0 :(得分:1)
使用Delegated Facts,pre_tasks
,并将事实委托给他们所属的主机。
- hosts: nginx
become: yes
tags:
- nginx
vars:
listen_address: "x.x.x.x"
pre_tasks:
- name: 'gather upstream facts.'
setup:
delegate_to: "{{item}}"
delegate_facts: True
with_items: "{{groups['upstreams']}}"
roles:
- role: nginx
upstreams: "{{ groups['upstreams'] | map('extract', hostvars, ['ansible_all_ipv4_addresses']) | ipaddr('x.x.x.x') | first | list }}"