summaryrefslogtreecommitdiffstats
path: root/salt/profile/privatebin/init.sls
blob: 7b9c036286f7d46b7da8a99588fe285afd68df30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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