在木偶中从.epp模板打印值时,我将面对
profiles::groups:
- name: 'admins'
type: 1
rights: []
- name: 'users'
type: 2
rights: [] .....
groups = <%= require 'json'; JSON.pretty_generate scope['groups'] %>
.....上述声明中的
所示,会出现错误。
.......
groups = [
{
"name": "admins",
"type": 1,
"rights": []
},
{
"name": "users",
"type": 2,
"rights": []
}
]
.....Error Message: Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Function Call, epp(): Invalid EPP: Syntax error at 'json' 虽然在.erb中声明相同的格式,但模板工作正常,并产生所需的输出。
发布于 2022-06-18 19:14:44
在erb中,它是嵌入的红宝石,你可以使用常规的红宝石函数,而在epp上,它是嵌入式的木偶,所以你需要使用木偶函数。在stdlib https://forge.puppet.com/modules/puppetlabs/stdlib中有一个可以使用的to_json_pretty,它可以完成这项工作,您可以这样使用它;
groups = <%= $groups.to_json_pretty %> 我刚用它测试过;
# test/manifests/jsontest.pp
class test::jsontest {
$groups = lookup('test::groups')
file { '/root/epp':
ensure => file,
content => epp("test/jsondata.epp", {groups => $groups})
}
}# test/templates/jsondata.epp
groups = <%= $groups.to_json_pretty %> # common.yaml
test::groups:
- name: 'admins'
type: 1
rights: []
- name: 'users'
type: 2
rights: []https://stackoverflow.com/questions/72648419
复制相似问题