- set_fact: muninpkgs: - muninlite munin_need_reconfigure: False when: ansible_facts['distribution'] == "LEDE" or ansible_facts['distribution'] == "OpenWRT" or ansible_facts['distribution'] == "OpenWrt" - 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 package: name: "{{ item }}" state: present loop: "{{ muninpkgs }}" - name: munin-node conf file template: src: munin-node.conf.j2 dest: /etc/munin/munin-node.conf notify: - restart munin-node when: munin_need_reconfigure ## Adding modules for specific functions # for NginX webservers - name: install LWP::UserAgent 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 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 Cache::Cache package: name: libcache-cache-perl state: present notify: - restart munin-node when: "'mariadbservers' in group_names" # For PGSQL servers - name: install DBD::Pg 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 include_tasks: mikrotik.yml when: "'muninservers' in group_names" # for NUT (UPS) servers - name: "add specific nut value for UPS" 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 # for physical servers - name: execute specific tasks for physical servers include_tasks: physical_servers.yml when: "'hypervisors' in group_names" - name: reconfigure munin-node shell: cmd: munin-node-configure --shell | sh notify: - restart munin-node when: munin_need_reconfigure ## Useless junks for everyone - name: delete useless junks for everyone file: path: "/etc/munin/plugins/{{ item }}" state: absent when: munin_need_reconfigure loop: - uptime - users ## Useless junks for LXC - name: "delete junks from LXC machines" file: path: "/etc/munin/plugins/{{ item }}" state: absent notify: - restart munin-node when: ansible_facts['virtualization_type'] == "lxc" loop: - cpuspeed - diskstats - entropy - irqstats ## Useless junks for hypervisors - name: execute delete states for hypervisors include_tasks: hypervisors.yml when: "'hypervisors' in group_names"