diff --git a/apache/vhosts/proxy.tmpl b/apache/vhosts/proxy.tmpl new file mode 100644 index 0000000..595d2db --- /dev/null +++ b/apache/vhosts/proxy.tmpl @@ -0,0 +1,48 @@ +{# Define default values here so the template below can just focus on layout #} +{% from "apache/map.jinja" import apache with context %} +{% 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)), + + 'UseCanonicalName': site.get('UseCanonicalName'), + + 'LogLevel': site.get('LogLevel', 'warn'), + 'ErrorLog': site.get('ErrorLog', '{0}/{1}-error.log'.format(map.logdir, sitename)), + 'LogFormat': site.get('LogFormat', '"%h %l %u %t \\\"%r\\\" %>s %O"'), + 'CustomLog': site.get('CustomLog', '{0}/{1}-access.log'.format(map.logdir, sitename)), + + 'ProxyPreserveHost': site.get('ProxyPreserveHost', 'On'), + 'ProxyPassSource': site.get('ProxyPassSource', '/'), + 'ProxyPassTarget': site.get('ProxyPassTarget', 'https://{0}'.format(sitename)), + 'ProxyPassReverseSource': site.get('ProxyPassReverseSource', site.get('ProxyPassSource', '/')), + 'ProxyPassReverseTarget': site.get('ProxyPassReverseTarget', site.get('ProxyPassTarget', 'https://{0}'.format(sitename))), + +} %} + + + ServerName {{ vals.ServerName }} + {% if site.get('ServerAlias') != False %}ServerAlias {{ vals.ServerAlias }}{% endif %} + + {% if site.get('ServerAdmin') != False %}ServerAdmin {{ vals.ServerAdmin }}{% endif %} + + {% if site.get('UseCanonicalName') %}UseCanonicalName {{ vals.UseCanonicalName }}{% 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 }} {{ vals.LogFormat }}{% endif %} + + ProxyPreserveHost {{ vals.ProxyPreserveHost }} + ProxyPass {{ vals.ProxyPassSource }} {{ vals.ProxyPassTarget }} + ProxyPassReverse {{ vals.ProxyPassReverseSource }} {{ vals.ProxyPassReverseTarget }} + + {% if site.get('Formula_Append') %} + {{ site.Formula_Append|indent(4) }} + {% endif %} + diff --git a/apache/vhosts/redirect.tmpl b/apache/vhosts/redirect.tmpl new file mode 100644 index 0000000..0f81ca5 --- /dev/null +++ b/apache/vhosts/redirect.tmpl @@ -0,0 +1,43 @@ +{# Define default values here so the template below can just focus on layout #} +{% from "apache/map.jinja" import apache with context %} +{% 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)), + + 'UseCanonicalName': site.get('UseCanonicalName'), + + 'LogLevel': site.get('LogLevel', 'warn'), + 'ErrorLog': site.get('ErrorLog', '{0}/{1}-error.log'.format(map.logdir, sitename)), + 'LogFormat': site.get('LogFormat', '"%h %l %u %t \\\"%r\\\" %>s %O"'), + 'CustomLog': site.get('CustomLog', '{0}/{1}-access.log'.format(map.logdir, sitename)), + + 'RedirectSource': site.get('RedirectSource', '/'), + 'RedirectTarget': site.get('RedirectTarget', 'https://{0}'.format(sitename)), + +} %} + + + ServerName {{ vals.ServerName }} + {% if site.get('ServerAlias') != False %}ServerAlias {{ vals.ServerAlias }}{% endif %} + + {% if site.get('ServerAdmin') != False %}ServerAdmin {{ vals.ServerAdmin }}{% endif %} + + {% if site.get('UseCanonicalName') %}UseCanonicalName {{ vals.UseCanonicalName }}{% 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 }} {{ vals.LogFormat }}{% endif %} + + Redirect {{ vals.RedirectSource }} {{ vals.RedirectTarget }} + + {% if site.get('Formula_Append') %} + {{ site.Formula_Append|indent(4) }} + {% endif %} + diff --git a/pillar.example b/pillar.example index 03a463a..65deac6 100644 --- a/pillar.example +++ b/pillar.example @@ -18,7 +18,7 @@ apache: template_file: salt://apache/vhosts/minimal.tmpl example.com: # must be unique; used as an ID declaration in Salt. - template_file: salt://apache/vhosts/standard.tmpl + template_file: salt://apache/vhosts/standard.tmpl # or redirect.tmpl or proxy.tmpl ####################### DEFAULT VALUES BELOW ############################ # NOTE: the values below are simply default settings that *can* be @@ -57,6 +57,17 @@ apache: Additional config as a multi-line string here + # if template is 'redirect.tmpl' + # RedirectSource: '/' + # RedirectTarget: 'http://www.example.net' + + # if template is 'proxy.tmpl' + # ProxyPreserveHost: 'On' + # ProxyPassSource: '/' + # ProxyPassTarget: 'http://www.example.net' + # ProxyPassReverseSource: '/' + # ProxyPassReverseTarget: 'http://www.example.net' + Formula_Append: | Additional config as a multi-line string here