diff options
Diffstat (limited to 'roles/monitoring/grafana/tasks/main.yml')
-rw-r--r-- | roles/monitoring/grafana/tasks/main.yml | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/roles/monitoring/grafana/tasks/main.yml b/roles/monitoring/grafana/tasks/main.yml index 46130882..8b1db9c6 100644 --- a/roles/monitoring/grafana/tasks/main.yml +++ b/roles/monitoring/grafana/tasks/main.yml @@ -86,14 +86,31 @@ group: grafana mode: 0750 - ## TODO: fix datasource selection -- name: install - loop: "{{ grafana_dashboards }}" +- name: install dashboards from file + loop: "{{ grafana_dashboards | selectattr('file', 'defined') }}" + loop_control: + label: "{{ item.file }} -> {{ item.datasource }}" + copy: + content: "{{ lookup('file', 'dashboard-'+item.file+'.json') | regex_replace('\"(?:\\${)?DS_[A-Z0-9_-]+(?:})?\"', '\"'+item.datasource+'\"') }}\n" + dest: "/var/lib/grafana/dashboards/ansible/{{ item.datasource }}_{{ item.file }}.json" + +- name: install dashboards from content + loop: "{{ grafana_dashboards | selectattr('content', 'defined') }}" + loop_control: + label: "{{ item.name }} -> {{ item.datasource }}" copy: - src: "dashboard-{{ item }}.json" - dest: "/var/lib/grafana/dashboards/ansible/{{ item }}.json" + content: "{{ item.content | regex_replace('\"(?:\\${)?DS_[A-Z0-9_-]+(?:})?\"', '\"'+item.datasource+'\"') }}\n" + dest: "/var/lib/grafana/dashboards/ansible/{{ item.datasource }}_{{ item.name }}.json" + + ## TODO: implement this +- name: install dashboards from grafana.com + loop: "{{ grafana_dashboards | selectattr('id', 'defined') }}" + loop_control: + label: "https://grafana.com/api/dashboards/{{ item.id }} -> {{ item.datasource }}" + debug: + msg: 'installing dashboards from grafana.com is not yet supported!' -- name: make sure grafan-server is enabled and started +- name: make sure grafana-server is enabled and started systemd: name: grafana-server state: started |