Como criar cópia condicional no Ansible com base na associação de rede (sub-rede)
Quero copiar uma versão de um arquivo para um servidor se ele tiver uma interface em uma sub-rede específica ou uma versão diferente se não tiver uma interface nessa sub-rede. Abaixo está um trabalho, mas acho que a solução está abaixo do ideal. Espero que exista uma maneira melhor que atenda aos seguintes critérios ...
permanece dinâmico (use fatos, não quero definir manualmente variáveis para cada servidor e criar manualmente grupos para servidores na sub-rede e não na sub-rede)menos repetitivo (poderia ser tratado em uma tarefa?)não precisa listar todos os nomes possíveis de interface (por exemplo, eth0, eth1, ..., bond0, bond1, ... etc)versão de trabalho ...
- 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")
...