我的hiera数据中有一个yaml文件:
wsgi_keystone_conf_contents: |
Listen 5000
Listen 35357
<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /var/www/cgi-bin/keystone/main
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
LogLevel info
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
</VirtualHost>
<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /var/www/cgi-bin/keystone/admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
LogLevel info
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
</VirtualHost>
我试图在我的傀儡清单中创建一个wsgi-keystone.conf
文件,如下所示:
file { '/etc/httpd/conf.d/wsgi-keystone.conf':
ensure => present,
content => $wsgi_keystone_conf_contents,
}
但这会导致这样的文件.
Listen 5000
Listen 35357
<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=
WSGIProcessGroup keystone-public
WSGIScriptAlias / /var/www/cgi-bin/keystone/main
WSGIApplicationGroup
WSGIPassAuthorization On
LogLevel info
ErrorLogFormat "t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
</VirtualHost>
<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /var/www/cgi-bin/keystone/admin
WSGIApplicationGroup
WSGIPassAuthorization On
LogLevel info
ErrorLogFormat "t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
</VirtualHost>
上面的文件语法错误,httpd不会重新启动。我应该如何将数据放入YAML文件中?我需要逃离%
吗?
发布于 2016-01-22 17:15:34
简短的回答是的。
在希拉,有插值令牌
插值标记看起来像
%{variable}
或%{function("input")}
。也就是说,它们包括:
其中之一:
如果配置文件中的任何设置或数据源中的值包含内插令牌,Hiera将在运行时用它引用的值替换该令牌。
这意味着您的%{GLOBAL}
与插值令牌完全匹配。在最终的输出中,Puppet显示它没有变量GLOBAL
的值,并且它输出为空。
在逸出Hiera数据上有一个线程,但我不认为这通常是您想要做的。最好的做法是编写一个erb模板,只需将值传递给要放入的模板,而不是配置文件的全部内容。
https://stackoverflow.com/questions/34666796
复制相似问题