summaryrefslogtreecommitdiff
path: root/roles/monitoring/grafana
diff options
context:
space:
mode:
Diffstat (limited to 'roles/monitoring/grafana')
-rw-r--r--roles/monitoring/grafana/defaults/main.yml21
-rw-r--r--roles/monitoring/grafana/handlers/main.yml5
-rw-r--r--roles/monitoring/grafana/tasks/main.yml71
3 files changed, 97 insertions, 0 deletions
diff --git a/roles/monitoring/grafana/defaults/main.yml b/roles/monitoring/grafana/defaults/main.yml
new file mode 100644
index 00000000..8798dfb5
--- /dev/null
+++ b/roles/monitoring/grafana/defaults/main.yml
@@ -0,0 +1,21 @@
+---
+# grafana_secret_key: <--- pwgen -s 64 -1
+grafana_root_url: "%(protocol)s://%(domain)s:%(http_port)s/grafana"
+
+grafana_config_server:
+ http_addr: localhost
+ http_port: 3000
+ root_url: "{{ grafana_root_url }}"
+ serve_from_sub_path: true
+
+grafana_config_analytics:
+ reporting_enabled: false
+ check_for_updates: false
+
+grafana_config_security:
+ secret_key: "{{ grafana_secret_key }}"
+ disable_gravatar: true
+
+grafana_config_users:
+ allow_sign_up: false
+ allow_org_create: false
diff --git a/roles/monitoring/grafana/handlers/main.yml b/roles/monitoring/grafana/handlers/main.yml
new file mode 100644
index 00000000..59d64e48
--- /dev/null
+++ b/roles/monitoring/grafana/handlers/main.yml
@@ -0,0 +1,5 @@
+---
+- name: restart grafana
+ service:
+ name: grafana-server
+ state: restarted
diff --git a/roles/monitoring/grafana/tasks/main.yml b/roles/monitoring/grafana/tasks/main.yml
new file mode 100644
index 00000000..87f16bd0
--- /dev/null
+++ b/roles/monitoring/grafana/tasks/main.yml
@@ -0,0 +1,71 @@
+---
+- name: add debian repository
+ include_role:
+ name: apt-repo/grafana
+
+- name: install apt packages
+ apt:
+ name: grafana
+ state: present
+
+- name: configure grafana server
+ loop: "{{ grafana_config_server | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ ini_file:
+ path: /etc/grafana/grafana.ini
+ section: server
+ option: "{{ item.key }}"
+ value: "{{ item.value | string }}"
+ notify: restart grafana
+
+- name: configure grafana analytics
+ loop: "{{ grafana_config_analytics | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ ini_file:
+ path: /etc/grafana/grafana.ini
+ section: analytics
+ option: "{{ item.key }}"
+ value: "{{ item.value | string }}"
+ notify: restart grafana
+
+- name: configure grafana security
+ loop: "{{ grafana_config_security | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ ini_file:
+ path: /etc/grafana/grafana.ini
+ section: security
+ option: "{{ item.key }}"
+ value: "{{ item.value | string }}"
+ notify: restart grafana
+
+- name: configure grafana users
+ loop: "{{ grafana_config_users | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ ini_file:
+ path: /etc/grafana/grafana.inig
+ section: users
+ option: "{{ item.key }}"
+ value: "{{ item.value | string }}"
+ notify: restart grafana
+
+- name: make sure grafan-server is enabled and started
+ systemd:
+ name: grafana-server
+ state: started
+ enabled: yes
+
+- name: configure nginx vhost
+ vars:
+ nginx_vhost:
+ name: grafana
+ template: generic-proxy-no-buffering
+ hostnames:
+ - "_"
+ client_max_body_size: "0"
+ proxy_pass: "http://127.0.0.1:{{ grafana_config_server.http_port | default(3000) }}"
+ include_role:
+ name: nginx/vhost