Wie erstelle ich eine bedingte Kopie in Ansible basierend auf der Netzwerkmitgliedschaft (Subnetz)?

Ich möchte eine Version einer Datei auf einen Server kopieren, wenn sich eine Schnittstelle in einem bestimmten Subnetz befindet, oder eine andere Version, wenn sich keine Schnittstelle in diesem Subnetz befindet. Unten ist eine funktionierende, aber ich denke weniger als optimale Lösung. Ich hoffe, es gibt einen besseren Weg, der die folgenden Kriterien erfüllt ...

stays dynamic (Fakten verwenden, ich möchte nicht für jeden Server manuell Variablen festlegen und manuell Gruppen für Server im und nicht im Subnetz erstellen müssen)less repetitive (könnte es in einer Aufgabe behandelt werden?)nicht alle möglichen Schnittstellennamen auflisten (z. B. eth0, eth1, ..., bond0, bond1, ... usw.)

working version ...

- name: copy file version 1 to server
  copy:
    src: files/myfile.vs1
    dest: /etc/myfile
  when: (ansible_eth0.network == "192.168.0.0") or
        (ansible_eth1.network == "192.168.0.0") or
        (ansible_eth2.network == "192.168.0.0")
        ...

- name: copy file version 2 to server
  copy:
    src: files/myfile.vs2
    dest: /etc/myfile
  when: (ansible_eth0.network != "192.168.0.0") and
        (ansible_eth1.network != "192.168.0.0") and
        (ansible_eth2.network != "192.168.0.0")
        ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage