blob: cf93c5f8e74e46d17fe76e52afc8ad10acba840e [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 %}
5{%- for site_name, site in server.site.iteritems() %}
6
7{% if site.enabled %}
8
9{{ server.vhost_dir }}/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}:
10 file.managed:
11 {%- if site.type in ['proxy', 'redirect', 'static', 'stats'] %}
12 - source: salt://apache/files/{{ site.type }}.conf
13 {%- else %}
14 - source: salt://{{ site.type }}/files/apache.conf
15 {%- endif %}
16 - template: jinja
17 - defaults:
18 site_name: "{{ site_name }}"
19 - require:
20 - pkg: apache_packages
21 - watch_in:
22 - service: apache_service
23
24{%- if site.get('ssl', {'enabled': False}).enabled %}
25
26/etc/ssl/certs/{{ site.host.name }}.crt:
27 file.managed:
28 {%- if site.ssl.cert is defined %}
Filip Pytloun65df47f2015-10-09 19:42:37 +020029 - contents_pillar: apache:server:site:{{ site_name }}:ssl:cert
Filip Pytloun410abc42015-10-06 16:28:31 +020030 {%- else %}
31 - source: salt://pki/{{ site.ssl.authority }}/certs/{{ site.host.name }}.cert.pem
32 {%- endif %}
33 - require:
34 - pkg: apache_packages
35
36/etc/ssl/private/{{ site.host.name }}.key:
37 file.managed:
Filip Pytloun20ac22b2015-10-08 15:05:54 +020038 {%- if site.ssl.key is defined %}
Filip Pytloun65df47f2015-10-09 19:42:37 +020039 - contents_pillar: apache:server:site:{{ site_name }}:ssl:key
Filip Pytloun410abc42015-10-06 16:28:31 +020040 {%- else %}
41 - source: salt://pki/{{ site.ssl.authority }}/certs/{{ site.host.name }}.key.pem
42 {%- endif %}
43 - require:
44 - pkg: apache_packages
45
46/etc/ssl/certs/ca-chain.crt:
47 file.managed:
Filip Pytloun20ac22b2015-10-08 15:05:54 +020048 {%- if site.ssl.chain is defined %}
Filip Pytloun65df47f2015-10-09 19:42:37 +020049 - contents_pillar: apache:server:site:{{ site_name }}:ssl:chain
Filip Pytloun410abc42015-10-06 16:28:31 +020050 {%- else %}
51 - source: salt://pki/{{ site.ssl.authority }}/{{ site.ssl.authority }}-chain.cert.pem
52 {%- endif %}
53 - require:
54 - pkg: apache_packages
55
56{%- endif %}
57
58{%- if grains.os_family == "Debian" %}
59
60/etc/apache2/sites-enabled/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}:
61 file.symlink:
62 - target: {{ server.vhost_dir }}/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}
63 - require:
64 - file: {{ server.vhost_dir }}/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}
65 - watch_in:
66 - service: apache_service
67
68/etc/apache2/sites-enabled/{{ site.type }}_{{ site.name }}:
69 file.absent
70
71{%- endif %}
72
73{%- if site.type == "static" %}
74
75{%- if site.source is defined %}
76
77{{ site.name }}_dir:
78 file.directory:
79 - name: /srv/static/sites/{{ site.name }}
80 - makedirs: true
81
82{%- if site.source.engine == 'git' %}
83
84{{ site.source.address }}:
85 git.latest:
86 - target: /srv/static/sites/{{ site.name }}
87 - rev: {{ site.source.revision }}
88 - require:
89 - file: {{ site.name }}_dir
90
91{%- endif %}
92
93{%- endif %}
94
95{%- endif %}
96
97{%- else %}
98
99{{ server.vhost_dir }}/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}:
100 file.absent
101
102{%- if grains.os_family == "Debian" %}
103
104/etc/apache2/sites-enabled/{{ site.type }}_{{ site.name }}{{ server.conf_ext }}:
105 file.absent
106
107{%- endif %}
108
109{%- endif %}
110
111{%- endfor %}
112{%- endif %}
113
114{%- endif %}