eb5aa93e8a
Also includes the dashboards for Synapse and for Node Exporter. Again has only been tested on debian amd64 so far, but the grafana docker image is available for arm64 and arm32. Nice.
116 lines
3.9 KiB
YAML
116 lines
3.9 KiB
YAML
---
|
|
|
|
#
|
|
# Tasks related to setting up matrix-grafana
|
|
#
|
|
|
|
- name: Ensure matrix-grafana image is pulled
|
|
docker_image:
|
|
name: "{{ matrix_grafana_docker_image }}"
|
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
|
force_source: "{{ matrix_grafana_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_grafana_docker_image_force_pull }}"
|
|
when: "matrix_grafana_enabled|bool"
|
|
|
|
- name: Ensure grafana paths exists
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
mode: 0750
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
with_items:
|
|
- "{{ matrix_grafana_base_path }}"
|
|
- "{{ matrix_grafana_config_path }}"
|
|
- "{{ matrix_grafana_config_path }}/provisioning"
|
|
- "{{ matrix_grafana_config_path }}/provisioning/datasources"
|
|
- "{{ matrix_grafana_config_path }}/provisioning/dashboards"
|
|
- "{{ matrix_grafana_config_path }}/dashboards"
|
|
- "{{ matrix_grafana_data_path }}"
|
|
when: matrix_grafana_enabled|bool
|
|
|
|
- name: Ensure grafana.ini present
|
|
template:
|
|
src: "{{ role_path }}/templates/grafana.ini.j2"
|
|
dest: "{{ matrix_grafana_config_path }}/grafana.ini"
|
|
mode: 0440
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
when: matrix_grafana_enabled|bool
|
|
|
|
- name: Ensure provisioning/datasources/default.yaml present
|
|
template:
|
|
src: "{{ role_path }}/templates/datasources.yaml.j2"
|
|
dest: "{{ matrix_grafana_config_path }}/provisioning/datasources/default.yaml"
|
|
mode: 0440
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
when: matrix_grafana_enabled|bool
|
|
|
|
- name: Ensure provisioning/dashboards/default.yaml present
|
|
template:
|
|
src: "{{ role_path }}/templates/dashboards.yaml.j2"
|
|
dest: "{{ matrix_grafana_config_path }}/provisioning/dashboards/default.yaml"
|
|
mode: 0440
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
when: matrix_grafana_enabled|bool
|
|
|
|
- name: Ensure dashboard(s) downloaded
|
|
get_url:
|
|
url: "{{ item }}"
|
|
dest: "{{ matrix_grafana_config_path }}/dashboards/"
|
|
force: true
|
|
mode: 0440
|
|
owner: "{{ matrix_user_username }}"
|
|
group: "{{ matrix_user_groupname }}"
|
|
with_items: "{{ matrix_grafana_dashboard_download_urls }}"
|
|
when: matrix_grafana_enabled|bool
|
|
|
|
- name: Ensure matrix-grafana.service installed
|
|
template:
|
|
src: "{{ role_path }}/templates/systemd/matrix-grafana.service.j2"
|
|
dest: "{{ matrix_systemd_path }}/matrix-grafana.service"
|
|
mode: 0644
|
|
register: matrix_grafana_systemd_service_result
|
|
when: matrix_grafana_enabled|bool
|
|
|
|
- name: Ensure systemd reloaded after matrix-grafana.service installation
|
|
service:
|
|
daemon_reload: yes
|
|
when: "matrix_grafana_enabled|bool and matrix_grafana_systemd_service_result.changed"
|
|
|
|
#
|
|
# Tasks related to getting rid of matrix-grafana (if it was previously enabled)
|
|
#
|
|
|
|
- name: Check existence of matrix-grafana service
|
|
stat:
|
|
path: "{{ matrix_systemd_path }}/matrix-grafana.service"
|
|
register: matrix_grafana_service_stat
|
|
|
|
- name: Ensure matrix-grafana is stopped
|
|
service:
|
|
name: matrix-grafana
|
|
state: stopped
|
|
daemon_reload: yes
|
|
register: stopping_result
|
|
when: "not matrix_grafana_enabled|bool and matrix_grafana_service_stat.stat.exists"
|
|
|
|
- name: Ensure matrix-grafana.service doesn't exist
|
|
file:
|
|
path: "{{ matrix_systemd_path }}/matrix-grafana.service"
|
|
state: absent
|
|
when: "not matrix_grafana_enabled|bool and matrix_grafana_service_stat.stat.exists"
|
|
|
|
- name: Ensure systemd reloaded after matrix-grafana.service removal
|
|
service:
|
|
daemon_reload: yes
|
|
when: "not matrix_grafana_enabled|bool and matrix_grafana_service_stat.stat.exists"
|
|
|
|
- name: Ensure matrix-grafana Docker image doesn't exist
|
|
docker_image:
|
|
name: "{{ matrix_grafana_docker_image }}"
|
|
state: absent
|
|
when: "not matrix_grafana_enabled|bool"
|