Added apache.vhost formula
This commit is contained in:
parent
a58bfa6d0f
commit
2499a50135
31
apache/vhosts/standard.sls
Normal file
31
apache/vhosts/standard.sls
Normal file
@ -0,0 +1,31 @@
|
||||
{% from "apache/package-map.jinja" import apache with context %}
|
||||
|
||||
include:
|
||||
- apache
|
||||
|
||||
{% for id, site in salt['pillar.get']('apache:sites', {}).items() %}
|
||||
|
||||
{{ id }}:
|
||||
file:
|
||||
- managed
|
||||
- name: {{ apache.vhostdir }}/{{ id }}
|
||||
- source: {{ site.get('template_file', 'salt://apache/vhosts/standard.tmpl') }}
|
||||
- template: {{ site.get('template_engine', 'jinja') }}
|
||||
- context:
|
||||
id: {{ id|json }}
|
||||
site: {{ site|json }}
|
||||
map: {{ apache|json }}
|
||||
- require:
|
||||
- pkg: apache
|
||||
- watch_in:
|
||||
- service: apache
|
||||
|
||||
{% if grains.os_family == 'Debian' %}
|
||||
a2ensite {{ id }}:
|
||||
cmd:
|
||||
- run
|
||||
- require:
|
||||
- file: {{ id }}
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
64
apache/vhosts/standard.tmpl
Normal file
64
apache/vhosts/standard.tmpl
Normal file
@ -0,0 +1,64 @@
|
||||
{# Define default values here so the template below can just focus on layout #}
|
||||
{% set sitename = site.get('ServerName', id) %}
|
||||
{% set vals = {
|
||||
'interface': site.get('interface', '*'),
|
||||
'port': site.get('port', '80'),
|
||||
|
||||
'ServerName': sitename,
|
||||
'ServerAlias': site.get('ServerAlias', 'www.{0}'.format(sitename)),
|
||||
|
||||
'ServerAdmin': site.get('ServerAdmin', 'webmaster@{0}'.format(sitename)),
|
||||
|
||||
'LogLevel': site.get('LogLevel', 'warn'),
|
||||
'ErrorLog': site.get('ErrorLog', '{0}/{1}-error.log'.format(map.logdir, sitename)),
|
||||
'CustomLog': site.get('ErrorLog', '{0}/{1}-access.log'.format(map.logdir, sitename)),
|
||||
|
||||
'DocumentRoot': site.get('DocumentRoot', '{0}/{1}'.format(map.wwwdir, sitename)),
|
||||
|
||||
'Directory_default': '{0}/{1}'.format(map.wwwdir, sitename),
|
||||
'Directory': {
|
||||
'Options': '-Indexes FollowSymLinks',
|
||||
'Order': 'allow,deny',
|
||||
'Allow': 'from all',
|
||||
'AllowOverride': 'None',
|
||||
},
|
||||
} %}
|
||||
|
||||
<VirtualHost {{ vals.interface }}:{{ vals.port }}>
|
||||
ServerName {{ vals.ServerName }}
|
||||
{% if site.get('ServerAlias') != False %}ServerAlias {{ vals.ServerAlias }}{% endif %}
|
||||
|
||||
{% if site.get('ServerAdmin') != False %}ServerAdmin {{ vals.ServerAdmin }}{% endif %}
|
||||
|
||||
{% if site.get('LogLevel') != False %}LogLevel {{ vals.LogLevel }}{% endif %}
|
||||
{% if site.get('ErrorLog') != False %}ErrorLog {{ vals.ErrorLog }}{% endif %}
|
||||
{% if site.get('CustomLog') != False %}CustomLog {{ vals.CustomLog }}{% endif %}
|
||||
|
||||
{% if site.get('DocumentRoot') != False %}DocumentRoot {{ vals.DocumentRoot }}{% endif %}
|
||||
|
||||
{% for path, dir in site.get('Directory', {}).items() %}
|
||||
{% set dvals = {
|
||||
'Options': dir.get('Options', vals.Directory.Options),
|
||||
'Order': dir.get('Order', vals.Directory.Order),
|
||||
'Allow': dir.get('Order', vals.Directory.Allow),
|
||||
'AllowOverride': dir.get('Order', vals.Directory.AllowOverride),
|
||||
} %}
|
||||
|
||||
{% if path == 'default' %}{% set path = vals.Directory_default %}{% endif %}
|
||||
|
||||
<Directory "{{ path }}">
|
||||
{% if dir.get('Options') != False %}Options {{ dvals.Options }}{% endif %}
|
||||
{% if dir.get('Order') != False %}Order {{ dvals.Order }}{% endif %}
|
||||
{% if dir.get('Allow') != False %}Allow {{ dvals.Allow }}{% endif %}
|
||||
{% if dir.get('AllowOverride') != False %}AllowOverride {{ dvals.AllowOverride }}{% endif %}
|
||||
|
||||
{% if dir.get('Formula_Append') %}
|
||||
{{ dir.Formula_Append|indent(8) }}
|
||||
{% endif %}
|
||||
</Directory>
|
||||
{% endfor %}
|
||||
|
||||
{% if site.get('Formula_Append') %}
|
||||
{{ site.Formula_Append|indent(4) }}
|
||||
{% endif %}
|
||||
</VirtualHost>
|
@ -2,9 +2,54 @@
|
||||
apache:
|
||||
server: apache2
|
||||
service: apache2
|
||||
conf: /etc/apache2/conf.d
|
||||
|
||||
confdir: /etc/apache2/conf.d
|
||||
logdir: /var/log/apache2
|
||||
wwwdir: /srv/apache2
|
||||
|
||||
# ``apache.mod_wsgi`` formula additional configuration:
|
||||
apache:
|
||||
mod_wsgi: mod_wsgi
|
||||
|
||||
# ``apache.vhosts`` formula additional configuration:
|
||||
apache:
|
||||
sites:
|
||||
# Default values below are used unless disabled by setting to 'False'.
|
||||
example.com: # must be unique; used as an ID declaration in Salt; also passed to the template context as {{ id }}
|
||||
template_file: salt://apache/vhosts/standard.tmpl
|
||||
template_engine: jinja
|
||||
|
||||
interface: '*'
|
||||
port: '80'
|
||||
|
||||
ServerName: {{ id }} # uses the unique ID above unless specified
|
||||
ServerAlias: www.{{ id }}
|
||||
|
||||
ServerAdmin: webmaster@{{ id }}
|
||||
|
||||
LogLevel: warn
|
||||
ErrorLog: {{ logdir }}/{{ id }}-error.log # E.g.: /var/log/apache2/example.com-error.log
|
||||
CustomLog: {{ logdir }}/{{ id }}-access.log # E.g.: /var/log/apache2/example.com-access.log
|
||||
|
||||
DocumentRoot: {{ wwwdir }}/{{ id }} # E.g., /var/www/example.com
|
||||
|
||||
Directory:
|
||||
default: # "default" is a special case; Adds ``{{ wwwdir }}/{{ id }}`` e.g.: /var/www/example.com
|
||||
Options: -Indexes FollowSymLinks
|
||||
Order: allow,deny
|
||||
Allow: from all
|
||||
AllowOverride: None
|
||||
Formula_Append: |
|
||||
Additional config as a
|
||||
multi-line string here
|
||||
|
||||
Formula_Append: |
|
||||
Additional config as a
|
||||
multi-line string here
|
||||
|
||||
example.net:
|
||||
template_file: salt://apache/vhosts/minimal.tmpl
|
||||
|
||||
# ``apache.debian_full`` formula additional configuration:
|
||||
apache:
|
||||
register-site:
|
||||
|
Loading…
Reference in New Issue
Block a user