ansible/roles/grafana/tasks/main.yaml

98 lines
2.5 KiB
YAML

---
- name: gather os specific variables
include_vars: "{{ lookup('first_found', possible_files) }}"
vars:
possible_files:
files:
- "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yaml"
- "{{ ansible_distribution }}.yaml"
- "{{ ansible_os_family }}.yaml"
- "default.yaml"
paths:
- vars
- name: include os specific tasks
include_tasks: "{{ lookup('first_found', possible_files) }}"
vars:
possible_files:
files:
- "{{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yaml"
- "{{ ansible_distribution }}.yaml"
- "default.yaml"
paths:
- tasks
- name: include os family specific tasks
include_tasks: "{{ lookup('first_found', possible_files) }}"
vars:
possible_files:
files:
- "{{ ansible_os_family }}.yaml"
- "default.yaml"
paths:
- tasks
- name: install package
package:
name: "{{ grafana_package_name }}"
state: "{{ grafana_package_state }}"
- name: "create {{ grafana_etc_path }}"
file:
path: "{{ grafana_etc_path }}"
owner: root
group: root
mode: 0755
- name: configure
template:
src: grafana.ini.j2
dest: "{{ grafana_config_path }}"
owner: root
group: "{{ grafana_group }}"
mode: 0640
notify: restart grafana
- name: provision datasources
copy:
dest: "{{ grafana_provisioning_path }}/datasources/datasource.yaml"
content: "{{ grafana_datasources | to_nice_yaml }}"
owner: root
group: "{{ grafana_group }}"
mode: 0640
- name: create dashboard directory
file:
path: /var/lib/grafana/dashboards
state: directory
owner: "{{ grafana_user }}"
group: "{{ grafana_group }}"
mode: 0755
- name: provision dashboards
copy:
dest: "{{ grafana_provisioning_path }}/dashboards/dashboards.yaml"
content: "{{ grafana_dashboards | to_nice_yaml }}"
owner: root
group: "{{ grafana_group }}"
mode: 0640
- name: upload user dashboards
copy:
src: "files/grafana/dashboards/{{ item }}"
dest: "/var/lib/grafana/dashboards/{{ item | basename }}"
owner: "{{ grafana_user }}"
group: "{{ grafana_group }}"
mode: 0644
loop: "{{ grafana_dashboard_files | default([]) }}"
- name: manage service
service:
name: "{{ grafana_service_name }}"
state: "{{ grafana_service_state }}"
enabled: "{{ grafana_service_enabled }}"
- name: configure nginx
include: nginx.yaml
when: "'nginx' in ansible_play_role_names"