模块/ 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模板?
答案 0 :(得分:3)
您尝试使用dynamic scoping。这种情况多年没有奏效,而且有充分的理由!
您可能希望将此值作为class parameter传递。
class bareos_backup_client($clientrunbeforejob) {
...
}
然后宣布它像
class { 'bareos_backup_client':
clientrunbeforejob => 'apple'
}