97 lines
2.5 KiB
YAML
97 lines
2.5 KiB
YAML
- 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: "{{ nrpe_package }}"
|
|
state: present
|
|
become: true
|
|
register: nrpe_install_result
|
|
when: "{{ ansible_facts['os_family'] }} == 'Debian' "
|
|
|
|
- name: Ensure NRPE is installed (RedHat/CentOS)
|
|
yum:
|
|
name: "{{ nrpe_package }}"
|
|
state: present
|
|
become: yes
|
|
register: nrpe_install_result
|
|
when: "{{ ansible_facts['os_family'] }} == 'RedHat' "
|
|
|
|
- name: Ensure NRPE is installed (FreeBSD)
|
|
ansible.builtin.pkgng:
|
|
name: "{{ nrpe_package }}"
|
|
state: present
|
|
become: yes
|
|
register: nrpe_install_result
|
|
when:
|
|
- ansible_facts['os_family'] == 'FreeBSD'
|
|
|
|
|
|
- name: Set psutil_installed fact if any package name contains "psutil"
|
|
ansible.builtin.set_fact:
|
|
psutil_installed: "{{ (ansible_facts.packages | default({}) | dict2items | map(attribute='key') | select('search','psutil') | list) | length > 0 }}"
|
|
|
|
- name: Debug psutil presence
|
|
ansible.builtin.debug:
|
|
msg: "psutil already installed on host."
|
|
when: psutil_installed
|
|
|
|
- name: Ensure python3-psutil is installed (Debian/Ubuntu)
|
|
ansible.builtin.apt:
|
|
name: python3-psutil
|
|
state: present
|
|
become: yes
|
|
register: psutil_install_result
|
|
when:
|
|
- ansible_facts['os_family'] == 'Debian'
|
|
- not psutil_installed
|
|
|
|
- name: Ensure python3-psutil is installed (RedHat/CentOS)
|
|
ansible.builtin.yum:
|
|
name: python3-psutil
|
|
state: present
|
|
become: yes
|
|
register: psutil_install_result
|
|
when:
|
|
- ansible_facts['os_family'] == 'RedHat'
|
|
- not psutil_installed
|
|
|
|
- name: Ensure psutil is installed (FreeBSD)
|
|
ansible.builtin.pkgng:
|
|
name: python3-psutil
|
|
state: present
|
|
become: yes
|
|
register: psutil_install_result
|
|
when:
|
|
- ansible_facts['os_family'] == 'FreeBSD'
|
|
- not psutil_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 |