Files
ansible/roles/munin_client/tasks/main.yml
2024-10-26 10:08:13 +02:00

132 lines
3.4 KiB
YAML

---
- name: Set package fact
ansible.builtin.set_fact:
muninpkgs:
- muninlite
munin_need_reconfigure: false
when: ansible_facts['distribution'] == "LEDE" or ansible_facts['distribution'] == "OpenWRT" or ansible_facts['distribution'] == "OpenWrt"
- name: Set other packages fact
ansible.builtin.set_fact:
muninpkgs:
- munin-node
- munin-plugins-core
- munin-plugins-extra
munin_need_reconfigure: true
when: ansible_facts['distribution'] == "Debian"
- name: Install munin node packages
ansible.builtin.package:
name: "{{ item }}"
state: present
loop: "{{ muninpkgs }}"
- name: Put munin-node configuration file
ansible.builtin.template:
src: munin-node.conf.j2
dest: /etc/munin/munin-node.conf
mode: "0o644"
notify:
- Restart munin-node
when: munin_need_reconfigure
## Adding modules for specific functions
# for NginX webservers
- name: Install LWP::UserAgent
ansible.builtin.package:
name: libwww-perl
state: present
notify:
- Restart munin-node
when: "'webservers' in group_names or 'loadbalancers' in group_names"
# for HAProxy servers
- name: Add haproxy backend module
ansible.builtin.file:
src: /usr/share/munin/plugins/haproxy_
dest: /etc/munin/plugins/haproxy_current
state: link
notify:
- Restart munin-node
when: "'loadbalancers' in group_names"
# For MariaDB servers
- name: Install MariaDB servers
ansible.builtin.package:
name:
- libcache-cache-perl
- libdbd-mysql-perl
state: present
notify:
- Restart munin-node
when: "'mariadbservers' in group_names"
# For PGSQL servers
- name: Install DBD::Pg
ansible.builtin.package:
name: libdbd-pg-perl
state: present
notify:
- Restart munin-node
when: "'pgsqlservers' in group_names"
# For Munin servers
- name: Execute specific tasks for munin servers
ansible.builtin.include_tasks: mikrotik.yml
when: "'muninservers' in group_names"
# for NUT (UPS) servers
- name: Add specific nut value for UPS
ansible.builtin.file:
path: "/etc/munin/plugins/nutups_eaton3s_{{ item }}"
src: /usr/share/munin/plugins/nutups_
state: link
notify:
- Restart munin-node
when: "'nut_server' in group_names"
loop:
- charge
- voltages
- name: Reconfigure munin-node
ansible.builtin.shell:
cmd: munin-node-configure --shell | sh # noqa: risky-shell-pipe
changed_when: true
notify:
- Restart munin-node
when: munin_need_reconfigure
# Useless junks for everyone
- name: Delete useless junks for everyone
ansible.builtin.file:
path: "/etc/munin/plugins/{{ item }}"
state: absent
when: munin_need_reconfigure
loop:
- users
# Useless junks for hypervisors
- name: Execute delete states for hypervisors
ansible.builtin.include_tasks: hypervisors.yml
when: "'hypervisors' in group_names"
# - name: Execute specific ZFS commands
# ansible.builtin.include_tasks: zfs.yml
# when: "'zfsservers' in group_names"
# Specific LXC commands
- name: Execute specific LXC commands
ansible.builtin.include_tasks: lxc.yml
when: ansible_facts['virtualization_type'] == "lxc"
# Specific garage commands
- name: Execute specific garage commands
ansible.builtin.include_tasks: garage.yml
when: "'garageservers' in group_names"
# Specific nsd commands
- name: Execute specific nsd commands
ansible.builtin.include_tasks: nsd.yml
when: "'dns' in inventory_hostname"