- name: Gather installed package facts package_facts: manager: auto - name: Debug OS family fact debug: msg: "{{ ansible_facts['os_family'] }} is the OS" - name: Set NRPE package name set_fact: nrpe_package: > {% if ansible_facts['os_family'] == 'Debian' %} nagios-nrpe-plugin {% elif ansible_facts['os_family'] == 'RedHat' %} nagios-plugins-nrpe.x86_64 {% else %} nrpe {% endif %} - name: Check if nagios NRPE is installed debug: msg: "NRPE is installed." when: "{{ nrpe_package }} in ansible_facts.packages" - name: Ensure NRPE is installed (Debian/Ubuntu) apt: name: nagios-nrpe-plugin state: present become: true register: nrpe_install_result when: "{{ ansible_facts['os_family'] }} == 'Debian' and ('{{ nrpe_package }}' not in ansible_facts.packages) " - name: Ensure NRPE is installed (RedHat/CentOS) yum: name: nagios-plugins-nrpe.x86_64 state: present become: yes register: nrpe_install_result when: "{{ ansible_facts['os_family'] }} == 'RedHat' and ('{{ nrpe_package }}' not in ansible_facts.packages) " - name: Ensure NRPE is installed (FreeBSD) ansible.builtin.pkg: name: "{{ nrpe_package }}" state: present become: yes register: nrpe_install_result when: - ansible_facts['os_family'] == 'FreeBSD' - not nrpe_installed - name: Deploy custom Nagios/NRPE script ansible.builtin.copy: src: memory_usage_check.py dest: /usr/local/nagios/libexec/my_custom_check.py mode: '0755' when: nrpe_install_result is defined and nrpe_install_result.changed