我想根据条件使用不同的 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
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
你需要一个selector,它可以让你在资源内部有一个条件 - 或者在它之外设置一个变量。
这是选择器:
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',
},
}
Run Code Online (Sandbox Code Playgroud)
或者设置一个变量并使用它:
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,
}
Run Code Online (Sandbox Code Playgroud)
当然还有其他变体,请查看上面链接的语言指南和有关变量的学习木偶教程部分。