Ensure custom paths are created and have correct permissions.
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 @@
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 @@
{%- 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 @@
{%- 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 @@
- 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) %}