Usando o ansible 2.0.2.0, desejo implantar um arquivo no servidor de destino. A pasta de destino é diferente na família Debian e RedHat.
Eu usei set_fact, mas parece que ele usou o último definido, ignorando a opção when:.
Não quero usar arquivos de variáveis, porque essa variável é usada apenas neste playbook específico
Duplicar a tarefa de cópia no RedHat e no Debian, embora possível, complicará a manutenção no futuro.
O playbook abaixo irá falhar quando executado no servidor Ubuntu porque o destino foi expandido para se tornar /etc/nrpe.d que é para RedHat
- set_fact:
destination: "/etc/nagios/nrpe.d/"
when: ansible_os_family == "Debian"
- set_fact:
destination: "/etc/nrpe.d/"
when: ansible_os_family == "RedHat"
- name: Ensure Nagios custom checks directory exists
file: path=/usr/local/lib/nagios/plugins state=directory mode=0755
- name: Install check_cpu_steal
copy: src=eprepo/sysadmin/nagios_checks/check_cpu_steal dest=/usr/local/lib/nagios/plugins/check_cpu_steal mode=0755 owner=root group=root
- name: Install check_cpu_steal command to /etc/nrpe.d
copy: src=eprepo/sysadmin/files/check_cpu_steal.conf dest="{{ destination }}/check_cpu_steal.conf mode=0644 owner=root group=root"