Вам нужен селектор , который позволит вам иметь условное выражение внутри ресурса или устанавливать переменную вне его.
Вот селектор:
file { '/etc/squid/squid.conf':
ensure => file,
source => $fact ? {
"foo" => 'puppet:///modules/1/squid.conf_1',
"bar" => 'puppet:///modules/1/squid.conf_2',
default => 'puppet:///modules/1/squid.conf_default',
},
}
] Или задайте переменную и используйте ее вместо:
if $fact == "foo" {
$squidconf = 'puppet:///modules/1/squid.conf_1'
} else {
$squidconf = 'puppet:///modules/1/squid.conf_2'
}
file { '/etc/squid/squid.conf':
ensure => file,
source => $squidconf,
}
Конечно, есть и другие варианты, посмотрите руководство по языку, указанное выше, и раздел Learning Puppet tutorial , посвященный переменным.