Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Puppet epp模板的键值哈希_Puppet - Fatal编程技术网

Puppet epp模板的键值哈希

Puppet epp模板的键值哈希,puppet,Puppet,如何将下一个代码从erb模板移植到epp: <%- if @mime_types -%> # Custom additional mime types <%- @mime_types.sort_by {|key,value| key}.each do |key,value| -%> <%= key %> <%= value %>; <%- end -%> <%- end -%> 希拉: nginx::mimetypes:

如何将下一个代码从erb模板移植到epp:

<%- if @mime_types -%>

# Custom additional mime types
<%- @mime_types.sort_by {|key,value| key}.each do |key,value| -%>
<%= key %> <%= value %>;
<%- end -%>
<%- end -%>
希拉:

nginx::mimetypes:
  video/ogg: 'ogv'
木偶版:

#puppet --version
5.0.1
非常感谢。

1)不要在epp模板中为哈希使用model
$classname::subclassname::lookup\u variable

2) 需要使用
仅适用于启动epp模板

正确的文件:

# 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] %>
<% } -%>
#manifests/config.pp
类nginx::config{
$mimetypes=lookup('nginx::mimetypes')
文件{“${nginx::params::conf_dir}/mime.types”:
确保=>文件,
content=>epp(${module_name}/mime.types.epp,{mimetypes=>$mimetypes}),
}
#mime.types.epp
#一行
#2线
#一些代码。。。

不清楚问题的哪一方面给您带来了麻烦,所以我只想说点什么。如果您使用的是EPP,那么我假设您使用的是Puppet 4或可能是5,或者至少是启用了未来解析器的Puppet 3.7。在这种情况下,您可以访问Puppet函数,该函数使用的是Puppet语言/EPP正如Ruby/ERB中各种类型的“
每个方法所做的那样。这个问题与我已经回答的@Alexarvey yeap几乎相同,但我在使用这种结构时遇到了一些问题。例如,代码
默认值:
返回下一个错误:“无效的EPP:位于“|”的语法错误”@贝莉,请把这一点添加到问题中。我们无法在评论中真正理解这一点。@MattSchuchard对不起,我是新来的,在这个网站上没有什么问题
#puppet --version
5.0.1
# 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] %>
<% } -%>