Как создать условную копию в Ansible на основе членства в сети (подсети)

Я хочу скопировать одну версию файла на сервер, если у него есть интерфейс в определенной подсети, или другую версию, если у него нет интерфейса в этой подсети. Ниже это рабочее, но я думаю, что неоптимальное решение. Я надеюсь, что есть лучший способ, который отвечает следующим критериям ...

остается динамичным (используйте факты, я не хочу вручную устанавливать переменные для каждого сервера и вручную создавать группы для серверов внутри, а не в подсети)менее повторяющийся (это может быть обработано в одной задаче?)не нужно перечислять все возможные имена интерфейсов (например, eth0, eth1, ..., bond0, bond1, ... и т. д.)

рабочая версия ...

- 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")
        ...

Ответы на вопрос(1)

Ваш ответ на вопрос