如何将下一段代码从erb模板移植到epp:
<%- if @mime_types -%>
# Custom additional mime types
<%- @mime_types.sort_by {|key,value| key}.each do |key,value| -%>
<%= key %> <%= value %>;
<%- end -%>
<%- end -%>或者如何在epp模板中使用键值散列。例如,下一个代码返回错误“无效EPP:语法错误在‘AC.26’‘”
# mime.types.epp
<%- | Hash[String, String] $nginx::config::mime_types | -%>
<% include stdlib -%>
<% $nginx::config::mime_types.keys.sort.each |$key| { -%>
<%= $key %> <%= $nginx::config::mime_types[$key] %>
<% } -%>舱单:
# manifests/config.pp
class nginx::config {
$mimetypes=lookup('nginx::mimetypes')
file { "${nginx::params::conf_dir}/mime.types":
ensure => file,
content => epp("${module_name}/mime.types.epp"),
}希拉:
nginx::mimetypes:
video/ogg: 'ogv'木偶版本:
#puppet --version
5.0.1非常感谢。
发布于 2017-08-10 14:37:37
1)不可能在epp模板中使用模型$classname::subclassname::lookup_variable进行散列
2)仅需在启动epp模板上使用<%- | Hash[String, String] $mime_types | -%>和<% include stdlib -%>。
正确档案:
# manifests/config.pp
class nginx::config {
$mimetypes=lookup('nginx::mimetypes')
file { "${nginx::params::conf_dir}/mime.types":
ensure => file,
content => epp("${module_name}/mime.types.epp", { mimetypes => $mimetypes }),
}
# mime.types.epp
<%- | Hash[String, String] $mimetypes | -%> # 1 line
<% include stdlib -%> # 2 line
# some code...
<% $mimetypes.keys.sort.each |$key| { -%>
<%= $key %> <%= $mimetypes[$key] %>
<% } -%>https://stackoverflow.com/questions/45468202
复制相似问题