首页 > 解决方案 > erb`if`语句中的人偶hiera变量

问题描述

我的 erb 模板中有一个 hiera 变量用于条件检查。

<% if @server_name == 'jira-dev-api'

升级到 puppet 5 后,循环中的这个变量if不起作用。if但是,如果没有erb 模板中的语句,这将采用正确的值。

  1. 我尝试了用于 hiera 调试的 puppet 查找,它工作正常。该变量在与以下相同的模块中定义。

    module_name::install_confluence_apache_config::server_name=xyz
    
  2. 当我附加一个具有绝对路径的范围时,如下所示,

    scope['module_name::install_confluence_apache_config::server_name'] 
    

    有用。

ifpuppet 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 语句中。

标签: puppeterbhiera

解决方案


谢谢约翰和亚历克斯。

这是一个范围问题,因为约翰说它在 3.8 之前使用 @syntax 可能是由于该错误。


推荐阅读