--- - name: ensure packages are installed become: true ansible.builtin.package: name: "{{ munin_packages }}" state: present - name: Ensure needed dirs exists ansible.builtin.file: path: "{{ item.name }}" state: directory mode: "{{ item.mode }}" owner: "{{ item.owner }}" group: "{{ item.group }}" loop: - name: /var/run/munin mode: '0755' owner: munin group: munin - name: /etc/munin/plugins mode: '0755' owner: munin group: munin - name: /var/cache/munin/www mode: '0755' owner: tss group: root - name: /var/lib/munin mode: '0755' owner: munin group: munin - name: /var/cache/munin mode: '0755' owner: root group: root - name: Ensure permissions are set ansible.builtin.file: path: /var/lib/munin/cgi-tmp mode: '0777' state: directory owner: munin group: munin recurse: true - name: Template apache config ansible.builtin.template: src: apache.conf dest: /etc/apache2/sites-available/000-default.conf mode: '0644' owner: root group: root notify: "restart apache2" - name: "apache2: enable fgcid" community.general.apache2_module: state: present name: fcgid - name: Template munin-server plugins ansible.builtin.template: src: "{{ item }}" dest: "/etc/munin/plugins/{{ item }}" mode: '0755' loop: "{{ munin_server_plugins }}" - name: Template munin config ansible.builtin.template: src: munin.conf dest: /etc/munin/munin.conf mode: '0644' owner: munin group: munin notify: "restart munin" - name: Enable or disable the munin cron job. ansible.builtin.lineinfile: dest: /etc/cron.d/munin state: "{{ munin_cron_job }}" regexp: "^\\*/5 \\* \\* \\* \\*" line: "*/5 * * * * munin if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi" create: true mode: '0644' - name: check if munin has been run ansible.builtin.stat: path: /var/cache/munin/www/index.html register: placeholder - name: Template website placeholder ansible.builtin.template: src: placeholder.html dest: /var/cache/munin/www/index.html mode: '0644' owner: munin group: munin when: not placeholder.stat.exists ...