erb `if` 语句中的 Puppet hiera 变量

Puppet hiera variable in erb `if` statement

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

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

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

  1. 我尝试了 puppet lookup for hiera debugging,它工作正常。该变量在与下面相同的模块中定义。

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

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

    有效。

puppet 5 中 if 语句中的 erb 范围界定是否有任何变化?我正在使用 puppet 3 开源。

正在添加更多信息。

a)server_name 是在 "nodes/%{::clientcert}" yaml 文件中定义的变量。 b) 我使用的是 puppet 3.8,工作 erb 模板如下

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

c) 升级到木偶 5。5.But 观察到当我在 erb 中引用 server_name 变量时,如上所述,当我使用

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

另外,这个问题只存在于 erb 模板中的 if 语句中。

谢谢约翰和亚历克斯。

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