puppet 3.8.x变量不能应用于模板

时间:2015-07-09 09:32:34

标签: puppet erb

模块/ bareos_backup_client /舱单/ init.pp:

class bareos_backup_client {
      @@file { "${fqdn}-bareos-client.conf":
            mode => 600,
            owner => bareos,
            group => bareos,
            path => "/etc/bareos/director.d/${fqdn}-client.conf",
            content => template("bareos_backup_client/bareos-dir-cliententry.erb"),
            tag => 'bareos-client',
            notify => Service[bareos-dir],

    }        
}

模块/ bareos_backup_client /模板/ bareos-DIR-cliententry.erb:

  <% if @clientrunbeforejob -%>
  ClientRunBeforeJob  = "<%=  @clientrunbeforejob %>"
  <% end -%>
  <% if @clientrunafterjob -%>
  ClientRunAfterJob = "<%=  @clientrunafterjob %>"
  <% end -%>

舱单/节点/ server_1.pp:

  include bareos_backup_client
  $clientrunbeforejob = "apple"

为什么clientrunbeforejob变量不能注入erb模板?

1 个答案:

答案 0 :(得分:3)

您尝试使用dynamic scoping。这种情况多年没有奏效,而且有充分的理由!

您可能希望将此值作为class parameter传递。

class bareos_backup_client($clientrunbeforejob) {
  ...
}

然后宣布它像

class { 'bareos_backup_client':
  clientrunbeforejob => 'apple'
}