我想根据情况使用不同的 squid.conf 文件。例如:
file { '/etc/squid/squid.conf':
ensure => file,
if condition = true then
source => 'puppet:///modules/1/squid.conf_1',
else
source => 'puppet:///modules/1/squid.conf_2',
fi
}
有没有办法做到这一点?
答案1
你需要一个选择器,这将允许您在资源内部拥有一个条件 - 或者在其外部设置一个变量。
这是选择器:
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,
}
当然还有其他变体,请查看上面链接的语言指南和学习 Puppet 教程关于变量的部分。