diff --git a/apache/config.sls b/apache/config.sls index 0e04e3c..ed1f2ae 100644 --- a/apache/config.sls +++ b/apache/config.sls @@ -32,6 +32,19 @@ include: - pkg: apache - watch_in: - service: apache + +{{ apache.portsfile }}: + file.managed: + - template: jinja + - source: + - salt://apache/files/{{ salt['grains.get']('os_family') }}/ports-{{ apache.version }}.conf.jinja + - require: + - pkg: apache + - watch_in: + - service: apache + - context: + apache: {{ apache }} + {% endif %} {% if grains['os_family']=="RedHat" %} diff --git a/apache/files/Debian/ports-2.4.conf.jinja b/apache/files/Debian/ports-2.4.conf.jinja new file mode 100644 index 0000000..0164044 --- /dev/null +++ b/apache/files/Debian/ports-2.4.conf.jinja @@ -0,0 +1,30 @@ +{%- from "apache/map.jinja" import apache with context -%} + +# Managed by saltstack + +{% if salt['pillar.get']('apache:sites') is mapping %} + {%- set listen_directives = [] %} + {%- for id, site in salt['pillar.get']('apache:sites').items() %} + {%- set interfaces = site.get('interface', '*').split() %} + {%- set port = site.get('port', 80) %} + {%- for interface in interfaces %} + {%- set listen_directive = interface ~ ':' ~ port %} + {%- if listen_directive not in listen_directives %} + {%- do listen_directives.append(listen_directive) %} + {%- endif %} + {%- endfor %} + {%- endfor %} + {%- for listen in listen_directives %} +Listen {{ listen }} + {%- endfor %} +{%- else %} +Listen 80 + + + Listen 443 + + + + Listen 443 + +{%- endif %} diff --git a/apache/map.jinja b/apache/map.jinja index 9603e81..eeb5e44 100644 --- a/apache/map.jinja +++ b/apache/map.jinja @@ -5,6 +5,7 @@ 'server': 'apache2', 'service': 'apache2', 'configfile': '/etc/apache2/apache2.conf', + 'portsfile': '/etc/apache2/ports.conf', 'mod_wsgi': 'libapache2-mod-wsgi', 'mod_php5': 'libapache2-mod-php5', diff --git a/apache/vhosts/standard.sls b/apache/vhosts/standard.sls index 1ad438b..ccfc736 100644 --- a/apache/vhosts/standard.sls +++ b/apache/vhosts/standard.sls @@ -2,6 +2,7 @@ include: - apache + - apache.config {% for id, site in salt['pillar.get']('apache:sites', {}).items() %} {% set documentroot = site.get('DocumentRoot', '{0}/{1}'.format(apache.wwwdir, id)) %}