puppet - erb`if`语句中的人偶hiera变量
问题描述
我的 erb 模板中有一个 hiera 变量用于条件检查。
<% if @server_name == 'jira-dev-api'
升级到 puppet 5 后,循环中的这个变量if
不起作用。if
但是,如果没有erb 模板中的语句,这将采用正确的值。
我尝试了用于 hiera 调试的 puppet 查找,它工作正常。该变量在与以下相同的模块中定义。
module_name::install_confluence_apache_config::server_name=xyz
当我附加一个具有绝对路径的范围时,如下所示,
scope['module_name::install_confluence_apache_config::server_name']
有用。
if
puppet 5中的 erb 范围界定是否有任何变化?我正在使用 puppet 3 开源。
添加更多信息。
a)server_name 是在“nodes/%{::clientcert}”yaml 文件中定义的变量。b)我使用的是 puppet 3.8,工作 erb 模板如下
<% if @server_name == 'jira-dev-api'
c)升级到 puppet 5.5。但观察到,当我在 if 语句中引用 erb 中的 server_name 变量时,值没有得到。但是当我使用时工作
scope['module_name::install_confluence_apache_config::server_name']
此外,此问题仅存在于 erb 模板中的 if 语句中。
解决方案
谢谢约翰和亚历克斯。
这是一个范围问题,因为约翰说它在 3.8 之前使用 @syntax 可能是由于该错误。
推荐阅读
- python - 如何通过编写新的 admin.ModelAdmin 在 Wagtail 1.8 中创建自定义用户模型?
- amp-html - 在现有的响应式网站上实施 AMP
- ios - 将属性分配给自身
- c# - Xamarin Android,使用 CrossDownloadManager 下载文件时指定 MIME 类型
- android - 安卓最大。自定义通知的大小
- php - 不允许将表达式作为字段默认值(在 oop 上)
- r - 如何防止我的 Shiny App 在开源闪亮服务器中断开连接?
- angular - 用于生产的 Angular 构建失败
- laravel-routing - 路由:如何将路由应用于除一个以外的所有域
- java - 在 onMessageReceived() 中执行操作 - Firebase 云消息传递