diff options
Diffstat (limited to 'roles/monitoring/grafana')
-rw-r--r-- | roles/monitoring/grafana/defaults/main.yml | 21 | ||||
-rw-r--r-- | roles/monitoring/grafana/handlers/main.yml | 5 | ||||
-rw-r--r-- | roles/monitoring/grafana/tasks/main.yml | 71 |
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 |