From 6566e96e22d13e5ccaa61f507d6b04d36da994ef Mon Sep 17 00:00:00 2001 From: abednarik Date: Sun, 6 Aug 2017 22:30:31 -0300 Subject: [PATCH] Ensure custom paths are created and have correct permissions. --- grafana/files/default | 20 ++++++++++++++++++++ grafana/files/grafana.ini | 4 ++-- grafana/map.jinja | 5 ++++- grafana/server.sls | 23 +++++++++++++++++++++++ 4 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 grafana/files/default diff --git a/grafana/files/default b/grafana/files/default new file mode 100644 index 0000000..916b011 --- /dev/null +++ b/grafana/files/default @@ -0,0 +1,20 @@ +{%- from "grafana/map.jinja" import server with context %} +GRAFANA_USER={{ server.user }} + +GRAFANA_GROUP={{ server.group }} + +GRAFANA_HOME=/usr/share/grafana + +LOG_DIR={{ server.path.logs }} + +DATA_DIR={{ server.path.data }} + +MAX_OPEN_FILES=10000 + +CONF_DIR=/etc/grafana + +CONF_FILE=/etc/grafana/grafana.ini + +RESTART_ON_UPGRADE=true + +PLUGINS_DIR={{ server.path.data }}/plugins diff --git a/grafana/files/grafana.ini b/grafana/files/grafana.ini index da3ee3f..7742a8f 100644 --- a/grafana/files/grafana.ini +++ b/grafana/files/grafana.ini @@ -11,11 +11,11 @@ [paths] # Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used) # -data = {{ server.paths.data }} +data = {{ server.path.data }} # # Directory where grafana can store logs # -logs = {{ server.paths.logs }} +logs = {{ server.path.logs }} #################################### Server #################################### [server] diff --git a/grafana/map.jinja b/grafana/map.jinja index 5562a39..18958ae 100644 --- a/grafana/map.jinja +++ b/grafana/map.jinja @@ -4,7 +4,10 @@ Debian: pkgs: - grafana service: grafana-server - paths: + user: grafana + group: grafana + path: + home: /usr/share/grafana data: /var/lib/grafana logs: /var/log/grafana bind: diff --git a/grafana/server.sls b/grafana/server.sls index 7c66e5c..8bc42b1 100644 --- a/grafana/server.sls +++ b/grafana/server.sls @@ -28,6 +28,14 @@ grafana_packages: {%- endif %} +/etc/default/grafana-server: + file.managed: + - name: /etc/default/grafana-server + - source: salt://grafana/files/default + - template: jinja + - require: + - pkg: grafana_packages + {%- if server.dashboards.enabled %} grafana_copy_default_dashboards: @@ -69,6 +77,20 @@ grafana_{{ theme_name }}_css_override: {%- endfor %} +{{server.path.data}}: + file.directory: + - makedirs: True + - mode: 755 + - user: {{ server.user }} + - group: {{ server.group }} + +{{server.path.logs}}: + file.directory: + - makedirs: True + - mode: 755 + - user: {{ server.user }} + - group: {{ server.group }} + grafana_service: service.running: - name: {{ server.service }} @@ -78,6 +100,7 @@ grafana_service: - init_delay: 5 - watch: - file: /etc/grafana/grafana.ini + - file: /etc/default/grafana-server {%- for plugin_name, plugin in server.get('plugins', {}).iteritems() %} {%- if plugin.get('enabled', False) %}