blob: 04fe0b183f0405208c158648293a66795eb608fb [file] [log] [blame]
Filip Pytloun410abc42015-10-06 16:28:31 +02001{%- from "apache/map.jinja" import server with context %}
2{%- if server.enabled %}
3
4{%- if server.site is defined %}
Filip Pytlounff7ff6d2016-03-02 11:30:33 +01005{%- set ssl_certificates = {} %}
6
Filip Pytloun410abc42015-10-06 16:28:31 +02007{%- for site_name, site in server.site.iteritems() %}
8
9{% if site.enabled %}
10
11{{ server.vhost_dir }}/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}:
12 file.managed:
13 {%- if site.type in ['proxy', 'redirect', 'static', 'stats'] %}
14 - source: salt://apache/files/{{ site.type }}.conf
15 {%- else %}
16 - source: salt://{{ site.type }}/files/apache.conf
17 {%- endif %}
18 - template: jinja
19 - defaults:
20 site_name: "{{ site_name }}"
21 - require:
22 - pkg: apache_packages
23 - watch_in:
24 - service: apache_service
25
Filip Pytlounac4cb5b2016-01-27 17:05:31 +010026{%- if site.get('webdav', {}).get('enabled', False) %}
27{{ site.name }}_webdav_dir:
28 file.directory:
29 - name: {{ site.root }}
Filip Pytloun5e9662e2016-02-04 11:14:41 +010030 - user: {{ server.service_user }}
31 - group: {{ server.service_group }}
Filip Pytlounac4cb5b2016-01-27 17:05:31 +010032 - makedirs: true
33{%- endif %}
34
35{%- for location in site.get('locations', []) %}
36{%- if location.get('webdav', {}).get('enabled', False) %}
37{{ site.name }}_webdav_{{ location.uri }}_dir:
38 file.directory:
39 - name: {{ location.path }}
Filip Pytloun5e9662e2016-02-04 11:14:41 +010040 - user: {{ server.service_user }}
41 - group: {{ server.service_group }}
Filip Pytlounac4cb5b2016-01-27 17:05:31 +010042 - makedirs: true
43{%- endif %}
44{%- endfor %}
45
Filip Pytlounff7ff6d2016-03-02 11:30:33 +010046{%- if site.get('ssl', {'enabled': False}).enabled and site.host.name not in ssl_certificates.keys() %}
47{%- set _dummy = ssl_certificates.update({site.host.name: []}) %}
Filip Pytloun410abc42015-10-06 16:28:31 +020048
49/etc/ssl/certs/{{ site.host.name }}.crt:
50 file.managed:
51 {%- if site.ssl.cert is defined %}
Filip Pytloun65df47f2015-10-09 19:42:37 +020052 - contents_pillar: apache:server:site:{{ site_name }}:ssl:cert
Filip Pytloun410abc42015-10-06 16:28:31 +020053 {%- else %}
54 - source: salt://pki/{{ site.ssl.authority }}/certs/{{ site.host.name }}.cert.pem
55 {%- endif %}
56 - require:
57 - pkg: apache_packages
58
59/etc/ssl/private/{{ site.host.name }}.key:
60 file.managed:
Filip Pytloun20ac22b2015-10-08 15:05:54 +020061 {%- if site.ssl.key is defined %}
Filip Pytloun65df47f2015-10-09 19:42:37 +020062 - contents_pillar: apache:server:site:{{ site_name }}:ssl:key
Filip Pytloun410abc42015-10-06 16:28:31 +020063 {%- else %}
64 - source: salt://pki/{{ site.ssl.authority }}/certs/{{ site.host.name }}.key.pem
65 {%- endif %}
66 - require:
67 - pkg: apache_packages
68
Filip Pytlounf27354a2016-02-22 13:23:39 +010069/etc/ssl/certs/{{ site.host.name }}-ca-chain.crt:
Filip Pytloun410abc42015-10-06 16:28:31 +020070 file.managed:
Filip Pytloun20ac22b2015-10-08 15:05:54 +020071 {%- if site.ssl.chain is defined %}
Filip Pytloun65df47f2015-10-09 19:42:37 +020072 - contents_pillar: apache:server:site:{{ site_name }}:ssl:chain
Filip Pytloun410abc42015-10-06 16:28:31 +020073 {%- else %}
74 - source: salt://pki/{{ site.ssl.authority }}/{{ site.ssl.authority }}-chain.cert.pem
75 {%- endif %}
76 - require:
77 - pkg: apache_packages
78
79{%- endif %}
80
81{%- if grains.os_family == "Debian" %}
82
83/etc/apache2/sites-enabled/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}:
84 file.symlink:
85 - target: {{ server.vhost_dir }}/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}
86 - require:
87 - file: {{ server.vhost_dir }}/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}
88 - watch_in:
89 - service: apache_service
90
91/etc/apache2/sites-enabled/{{ site.type }}_{{ site.name }}:
92 file.absent
93
94{%- endif %}
95
96{%- if site.type == "static" %}
97
98{%- if site.source is defined %}
99
100{{ site.name }}_dir:
101 file.directory:
102 - name: /srv/static/sites/{{ site.name }}
103 - makedirs: true
104
105{%- if site.source.engine == 'git' %}
106
107{{ site.source.address }}:
108 git.latest:
109 - target: /srv/static/sites/{{ site.name }}
110 - rev: {{ site.source.revision }}
111 - require:
112 - file: {{ site.name }}_dir
113
114{%- endif %}
115
116{%- endif %}
117
118{%- endif %}
119
120{%- else %}
121
122{{ server.vhost_dir }}/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}:
123 file.absent
124
125{%- if grains.os_family == "Debian" %}
126
127/etc/apache2/sites-enabled/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}:
128 file.absent
129
130{%- endif %}
131
132{%- endif %}
133
134{%- endfor %}
135{%- endif %}
136
137{%- endif %}