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



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

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

升级到 puppet 5 后,if循环中的此变量不起作用。但这将在 erb 模板中采用正确的值,而无需if语句。

  1. 我尝试了用于 hiera 调试的木偶查找,它工作正常。该变量在同一个模块中定义,如下所示。

    module_name::install_confluence_apache_config::server_name=xyz
    
  2. 当我附加一个带有绝对路径的作用域时,如下所示,

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

    它有效。

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

添加更多信息。

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

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

c)升级到傀儡5.5.但是观察到,当我在上面的if语句中引用erb中的server_name变量时,该值没有得到。但是当我使用时工作

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

此外,此问题仅在 erb 模板中的 if 语句中存在。

谢谢约翰和亚历克斯。

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

最新更新