lots of stuff
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
- name: Dashboards
|
||||
hosts: beepi
|
||||
become: true
|
||||
vars:
|
||||
dashboard_dir: /opt/beeserver/monitoring/grafana/dashboards
|
||||
dashboard_general_dir: /opt/beeserver/monitoring/grafana/dashboards-general
|
||||
provisioning_dir: /opt/beeserver/monitoring/grafana/provisioning/dashboards
|
||||
tasks:
|
||||
- name: Determine whether uptimerobot is configured
|
||||
ansible.builtin.set_fact:
|
||||
uptimerobot_enabled: "{{ uptimerobot_api_key is defined and 'REPLACE_ME' not in uptimerobot_api_key }}"
|
||||
|
||||
- name: Check that grafana is running
|
||||
ansible.builtin.command:
|
||||
cmd: podman container inspect -f '{{ '{{' }}.State.Running{{ '}}' }}' grafana
|
||||
register: grafana_running
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
- name: Require a running grafana
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- grafana_running.stdout | trim == 'true'
|
||||
fail_msg: >-
|
||||
grafana is not running, so provisioned changes cannot be picked up.
|
||||
Run make deploy-monitoring first.
|
||||
|
||||
- name: Create dashboard directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
mode: '0755'
|
||||
loop:
|
||||
- "{{ dashboard_dir }}"
|
||||
- "{{ dashboard_general_dir }}"
|
||||
- "{{ provisioning_dir }}"
|
||||
|
||||
- name: Copy dashboard provider
|
||||
ansible.builtin.template:
|
||||
src: ../monitoring/grafana/provisioning/dashboards/dashboards.yml.j2
|
||||
dest: "{{ provisioning_dir }}/dashboards.yml"
|
||||
mode: '0644'
|
||||
notify: Restart grafana
|
||||
|
||||
- name: Copy generated dashboards
|
||||
ansible.builtin.template:
|
||||
src: "../monitoring/grafana/dashboards/{{ item }}.json.j2"
|
||||
dest: "{{ dashboard_dir }}/{{ item }}.json"
|
||||
mode: '0644'
|
||||
validate: "python3 -c \"import json; json.load(open('%s'))\""
|
||||
loop:
|
||||
- infrastructure-map
|
||||
- backups
|
||||
- services
|
||||
- ingress
|
||||
|
||||
- name: Copy uptimerobot dashboard
|
||||
ansible.builtin.template:
|
||||
src: ../monitoring/grafana/dashboards/uptimerobot.json.j2
|
||||
dest: "{{ dashboard_dir }}/uptimerobot.json"
|
||||
mode: '0644'
|
||||
validate: "python3 -c \"import json; json.load(open('%s'))\""
|
||||
when: uptimerobot_enabled
|
||||
|
||||
- name: Copy hand made dashboards
|
||||
ansible.builtin.copy:
|
||||
src: ../monitoring/grafana/dashboards-general/
|
||||
dest: "{{ dashboard_general_dir }}/"
|
||||
mode: '0644'
|
||||
|
||||
- name: Debug
|
||||
ansible.builtin.debug:
|
||||
msg:
|
||||
- "Dashboards are polled by grafana every 30s, no restart needed."
|
||||
- "Grafana: https://grafana.secretbee.buzz/"
|
||||
- "Errors: sudo podman logs --tail 40 grafana | grep -i provision"
|
||||
tags:
|
||||
- always
|
||||
|
||||
handlers:
|
||||
- name: Restart grafana
|
||||
changed_when: true
|
||||
ansible.builtin.command:
|
||||
cmd: podman restart grafana
|
||||
Reference in New Issue
Block a user