90 lines
2.5 KiB
YAML
90 lines
2.5 KiB
YAML
- 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 }}"
|