3
如何從ERB模板下面的代碼移植到EPP:鍵值哈希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:語法錯誤在'|'「
# 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"),
}
hiera:
nginx::mimetypes:
video/ogg: 'ogv'
木偶版本:
#puppet --version
5.0.1
非常感謝。
目前還不清楚問題的哪一方面會給你帶來麻煩,所以我只是要在那裏拋出一些東西。如果你使用的是EPP,那麼我認爲你在Puppet 4或者可能是5,或者至少在Puppet 3.7上啓用了未來的分析器。在這種情況下,您可以訪問Puppet的['each()'](https://docs.puppet.com/puppet/5.0/function.html#each)函數,該函數在Puppet語言/ EPP中以各種類型Ruby/ERB中的'each'方法。 –
這個問題與我已經解答的問題幾乎相同https://stackoverflow.com/questions/45387586/using-puppet-hash-for-epp-templates?rq=1 –
@AlexHarvey yeap但我有一些使用問題這個建築。例如代碼'<% - |哈希[字符串,字符串] $ sudo :: def_users | - %> <%include stdlib - %> <%$ sudo :: def_users.keys.sort.each | $ key | { - %> 默認值:<%= $key %><%= $ sudo :: def_users [$ key]%> <% } -%>'return next error:「無效的EPP:'|'處的語法錯誤」 – beliy