summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--salt/profile/privatebin/init.sls55
-rw-r--r--salt/role/privatebin.sls4
2 files changed, 59 insertions, 0 deletions
diff --git a/salt/profile/privatebin/init.sls b/salt/profile/privatebin/init.sls
new file mode 100644
index 0000000..7b9c036
--- /dev/null
+++ b/salt/profile/privatebin/init.sls
@@ -0,0 +1,55 @@
+{%- set mypillar = salt['pillar.get']('profile:privatebin', {}) -%}
+{%- set confdir = '/etc/PrivateBin' -%}
+{%- set configfile = confdir ~ '/conf.php' -%}
+
+privatebin_packages:
+ pkg.installed:
+ - names:
+ - PrivateBin-config-httpd
+
+privatebin_clean:
+ file.directory:
+ - name: {{ confdir }}
+ - clean: True
+ - onchanges:
+ - pkg: privatebin_packages
+ - require:
+ - pkg: privatebin_packages
+
+{%- if mypillar | length %}
+{{ configfile }}:
+ ini.options_present:
+ - separator: '='
+ - strict: True
+ - sections:
+ {%- macro conf(section, options) %}
+ {%- for option in options.keys() -%}
+ {%- if mypillar[section][option] is string and mypillar[section][option].startswith('$') or mypillar[section][option] is number %}
+ {%- set value = mypillar[section][option] -%}
+ {%- else %}
+ {%- set value = mypillar[section][option] | quote -%}
+ {%- endif %}
+ {{ option }}: {{ value }}
+ {%- endfor -%}
+ {%- endmacro %}
+ {%- for section, options in mypillar.items() %}
+ {{ section }}:
+ {{ conf(section, options) }}
+ {%- endfor %}
+ - require:
+ - pkg: privatebin_packages
+ - watch:
+ - file: privatebin_clean
+ - watch_in:
+ - file: privatebin_permissions
+{%- endif %}
+
+privatebin_permissions:
+ file.managed:
+ - mode: '0640'
+ - user: wwwrun
+ - group: privatebin
+ - names:
+ - {{ configfile }}
+ - require:
+ - pkg: privatebin_packages
diff --git a/salt/role/privatebin.sls b/salt/role/privatebin.sls
new file mode 100644
index 0000000..ec8581d
--- /dev/null
+++ b/salt/role/privatebin.sls
@@ -0,0 +1,4 @@
+include:
+ - role.web.apache-httpd
+ - profile.privatebin
+ - php.fpm