簡體   English   中英

Ansible游戲在一組主機上運行,​​但取決於其他主機的事實

[英]Ansible play runs on one group of hosts, but depends on facts from others

這是基本的用例:

我有一個要設置的NGINX反向代理,因此我專門介紹了僅在“ nginx”組上運行的播放。

但是,為了知道要反向代理的ip,我需要從“上游”組中收集事實。 由於該播放沒有在“上游”上運行setup ,因此不會發生這種情況。

這個答案包含了我以前使用過的解決方案,但是我希望能夠將所有這些內容獨立地包含在一個主機游戲中,使我可以獨立於其他主機運行。

使用Delegated Factspre_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 }}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM