木偶:条件文件源

我想根据条件使用不同的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 } 

有没有办法做到这一点?

你需要一个select器 ,让你有一个条件内的资源 – 或设置一个variables之外。

这是select器:

 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', }, } 

或者设置一个variables并使用它来代替:

 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, } 

当然还有其他的变化,请看上面链接的语言指南和variables的学习木偶教程部分。