80 lines
1.9 KiB
YAML
80 lines
1.9 KiB
YAML
- name: install grafana
|
|
apt:
|
|
pkg: grafana
|
|
|
|
- name: add www-data to grafana group
|
|
user:
|
|
name: www-data
|
|
groups: grafana
|
|
append: yes
|
|
|
|
- name: set admin password
|
|
command:
|
|
argv:
|
|
- grafana-cli
|
|
- admin
|
|
- reset-admin-password
|
|
- "{{ grafana.adminpw }}"
|
|
|
|
- name: install grafana plugins
|
|
grafana_plugin:
|
|
name: "{{ item }}"
|
|
loop: "{{ grafana.plugins.keys()|list }}"
|
|
notify: restart grafana
|
|
|
|
- name: update all grafana plugins
|
|
tags: update
|
|
command: grafana-cli plugins update-all
|
|
notify: restart grafana
|
|
|
|
- name: copy grafana config
|
|
notify: restart grafana
|
|
template:
|
|
src: grafana.ini.j2
|
|
dest: /etc/grafana/grafana.ini
|
|
owner: root
|
|
group: grafana
|
|
mode: 0640
|
|
|
|
- name: "ensure grafana is started"
|
|
service:
|
|
name: grafana-server
|
|
enabled: true
|
|
state: started
|
|
|
|
- name: flush handlers so grafana is ready
|
|
meta: flush_handlers
|
|
|
|
- name: "Check if grafana is accessible."
|
|
uri:
|
|
url: http://127.0.0.1
|
|
method: GET
|
|
status_code: 200
|
|
|
|
- name: convert tls paths to data (datasources)
|
|
include_tasks: tls-path-to-data.yml
|
|
vars:
|
|
grafanakey: datasources
|
|
loop: "{{ grafana.datasources|dict2items }}"
|
|
|
|
- name: create data sources
|
|
loop: "{{ grafana.datasources|dict2items }}"
|
|
grafana_datasource:
|
|
name: "{{ item.key }}"
|
|
grafana_url: "http://127.0.0.1"
|
|
grafana_user: "admin"
|
|
grafana_password: "{{ grafana.adminpw }}"
|
|
ds_type: "{{ item.value.ds_type }}"
|
|
url: "{{ item.value.url }}"
|
|
is_default: "{{ item.value.is_default }}"
|
|
tls_ca_cert: "{{ item.value.tls_ca_cert|d(omit) }}"
|
|
tls_client_cert: "{{ item.value.tls_client_cert|d(omit) }}"
|
|
tls_client_key: "{{ item.value.tls_client_key|d(omit) }}"
|
|
|
|
- name: import dashboards
|
|
loop: "{{ grafana.dashboards||dict2items }}"
|
|
grafana_dashboard:
|
|
grafana_url: "http://127.0.0.1"
|
|
grafana_user: "admin"
|
|
grafana_password: "{{ grafana.adminpw }}"
|
|
path: "{{ item.value.path }}"
|