ansible-role-grafana/tasks/main.yml

72 lines
1.5 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: create data sources
loop: "{{ grafana.datasources }}"
grafana_datasource:
name: "{{ item.name }}"
grafana_url: "http://127.0.0.1"
grafana_user: "admin"
grafana_password: "{{ grafana.adminpw }}"
ds_type: "{{ item.ds_type }}"
url: "{{ item.url }}"
is_default: "{{ item.is_default }}"
- name: import dashboards
loop: "{{ grafana.dashboards }}"
grafana_dashboard:
grafana_url: "http://127.0.0.1"
grafana_user: "admin"
grafana_password: "{{ grafana.adminpw }}"
path: "{{ item.path }}"