- tags: [ grafana ] block: - name: Create grafana group become: true register: grafana_group group: name: grafana - name: Create grafana user become: true register: grafana_user user: name: grafana group: grafana system: true - name: Create grafana configuration directory become: true file: path: /etc/grafana state: directory owner: "{{ grafana_user.name }}" group: "{{ grafana_group.name }}" - name: Create grafana state directory become: true file: path: /var/lib/grafana state: directory owner: "{{ grafana_user.name }}" group: "{{ grafana_group.name }}" - name: Deploy grafana configuration become: true notify: grafana.restarted template: src: grafana.ini dest: /etc/grafana/grafana.ini owner: "{{ grafana_user.name }}" group: "{{ grafana_group.name }}" mode: "u=rwX,g=rX,o=" - name: Create grafana provisioning directories become: true with_filetree: "templates/grafana_provisioning" when: "item.state == 'directory'" loop_control: label: "{{ item.path }}" file: path: "/etc/grafana/provisioning/{{ item.path }}" state: directory owner: "{{ grafana_user.name }}" group: "{{ grafana_group.name }}" mode: "u=rwX,g=rX,o=" - name: Create grafana provisioning files become: true with_filetree: "templates/grafana_provisioning" when: "item.state == 'file'" notify: grafana.restarted loop_control: label: "{{ item.path }}" template: src: "grafana_provisioning/{{ item.path }}" dest: "/etc/grafana/provisioning/{{ item.path }}" owner: "{{ grafana_user.name }}" group: "{{ grafana_group.name }}" mode: "u=rw,g=r,o=" - name: Configure grafana quadlet become: true notify: grafana.restarted register: grafana_quadlet vars: user_id: "{{ grafana_user.uid }}" group_id: "{{ grafana_group.gid }}" template: src: grafana.container dest: /etc/containers/systemd/grafana.container owner: "{{ grafana_user.name }}" group: "{{ grafana_group.name }}" - name: Ensure grafana is running and enabled become: true systemd: name: "grafana.service" state: started enabled: true daemon_reload: "{{ grafana_quadlet.changed }}"