Fix scope of vhost template variables

Dynamic scoping for variables in ERB templates was removed in puppet
4[1] which means that the variables defined in the
refstack::apache::http* classes cannot be found when it is referenced in
the httpd::vhost defined type and will be evaluated as nil when
puppet runs. Use scope.lookupvar instead to be explicit about the
variable's source.

[1] https://puppet.com/docs/puppet/4.10/lang_updating_manifests.html#dynamic-scoping-in-erb

Change-Id: Ie4ebcce043c8b1ed28d42f58fe15502cac956b48
This commit is contained in:
Colleen Murphy 2018-04-27 20:49:12 +02:00
parent e22ef04d4f
commit 7580829b12
2 changed files with 22 additions and 22 deletions

View File

@ -1,12 +1,12 @@
<VirtualHost <%= @hostname %>:80>
<% if !!@server_admin %>
ServerAdmin <%= @server_admin %>
<VirtualHost <%= scope.lookupvar('::refstack::apache::http::hostname') %>:80>
<% if !!scope.lookupvar('::refstack::apache::http::server_admin') %>
ServerAdmin <%= scope.lookupvar('::refstack::apache::http::server_admin') %>
<% end %>
ServerName <%= @hostname %>
ServerName <%= scope.lookupvar('::refstack::apache::http::hostname') %>
DocumentRoot <%= @install_www_root %>
DocumentRoot <%= scope.lookupvar('::refstack::apache::http::install_www_root') %>
WSGIDaemonProcess refstack user=<%= @user %> group=<%= @group %> threads=5
WSGIDaemonProcess refstack user=<%= scope.lookupvar('::refstack::apache::http::user') %> group=<%= scope.lookupvar('::refstack::apache::http::group') %> threads=5
WSGIScriptAlias /api /etc/refstack/app.wsgi
WSGIPassAuthorization On
LogLevel warn

View File

@ -1,12 +1,12 @@
<VirtualHost <%= @hostname %>:80>
<% if !!@server_admin %>
ServerAdmin <%= @server_admin %>
<VirtualHost <%= scope.lookupvar('::refstack::apache::https::hostname') %>:80>
<% if !!scope.lookupvar('::refstack::apache::https::server_admin') %>
ServerAdmin <%= scope.lookupvar('::refstack::apache::https::server_admin') %>
<% end %>
ServerName <%= @hostname %>
ServerName <%= scope.lookupvar('::refstack::apache::https::hostname') %>
DocumentRoot <%= @install_www_root %>
DocumentRoot <%= scope.lookupvar('::refstack::apache::https::install_www_root') %>
Redirect / https://<%= @hostname %>/
Redirect / https://<%= scope.lookupvar('::refstack::apache::https::hostname') %>/
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/refstack-error.log
@ -14,11 +14,11 @@
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost <%= @hostname %>:443>
<% if !!@server_admin %>
ServerAdmin <%= @server_admin %>
<VirtualHost <%= scope.lookupvar('::refstack::apache::https::hostname') %>:443>
<% if !!scope.lookupvar('::refstack::apache::https::server_admin') %>
ServerAdmin <%= scope.lookupvar('::refstack::apache::https::server_admin') %>
<% end %>
ServerName <%= @hostname %>
ServerName <%= scope.lookupvar('::refstack::apache::https::hostname') %>
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/refstack-ssl-error.log
@ -27,10 +27,10 @@
SSLEngine on
SSLProtocol All -SSLv2 -SSLv3
SSLCertificateFile <%= @ssl_cert %>
SSLCertificateKeyFile <%= @ssl_key %>
<% if !!@resolved_ssl_ca %>
SSLCertificateChainFile <%= @resolved_ssl_ca %>
SSLCertificateFile <%= scope.lookupvar('::refstack::apache::https::ssl_cert') %>
SSLCertificateKeyFile <%= scope.lookupvar('::refstack::apache::https::ssl_key') %>
<% if !!scope.lookupvar('::refstack::apache::https::resolved_ssl_ca') %>
SSLCertificateChainFile <%= scope.lookupvar('::refstack::apache::https::resolved_ssl_ca') %>
<% end %>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
@ -46,9 +46,9 @@
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
DocumentRoot <%= @install_www_root %>
DocumentRoot <%= scope.lookupvar('::refstack::apache::https::install_www_root') %>
WSGIDaemonProcess refstack user=<%= @user %> group=<%= @group %> threads=5
WSGIDaemonProcess refstack user=<%= scope.lookupvar('::refstack::apache::https::user') %> group=<%= scope.lookupvar('::refstack::apache::https::group') %> threads=5
WSGIScriptAlias /api /etc/refstack/app.wsgi
WSGIPassAuthorization On