0

可以像这样使用 inline_epp 使用字符串变量吗?

                    "htaccess": {
                    "content": [
                        "<% include stdlib -%>",
                        "AuthType Basic ",
                        "AuthUserFile <%= $auth_file %>",
                        "Require valid-use"
                    ],
                    "params": {
                        "auth_name": "Bootstrap content for provisioning",
                        "auth_file": "file_path"
                    }
                }

和(一些.pp):

                $htacces = $sub_attrs['htaccess']
                $content = $htacces['content']
                $data = join($content, "\n")

                $auth_file = "sgsdgsdfgsdfg"

                notice inline_epp($data)

这是通知行中的结果: Invalid EPP: This Name has no effect。产生了一个值然后忘记了(一个或多个前面的表达式可能有错误的形式)

想法是使用 hiera 数据向 epp 提供内容。使用 puppet 5.5.2 和 Ubuntu 16.04

4

1 回答 1

1

看起来这里发生了一些事情。

一方面,该notice函数的语法是否正确?Puppet Cookbooknotice括号notice("message")或 Puppet 的类语法显示notify { "message": })。

此外,inline_epp获取用于填写 EPP 的参数的哈希值。请参阅 上的Puppet 文档inline_epp。在你的情况下,这就像inline_epp($data, { auth_file => $auth_file }).

最后,EPP 需要在顶部列出其参数的一行。在您的情况下,它应该类似于<%- | String $auth_file | -%>. 请参阅有关 EPP 文件的 Puppet 文档

于 2018-07-16T08:45:15.690 回答