我试图让这样的东西在我的 Puppet 清单中工作:
if $hostname == 'host1' || $hostname == 'host2' {
# Modified config.txt for portrait mode.
file { '/boot/config.txt' :
ensure => present,
mode => '0755',
source => 'puppet://puppet/files/boot/config.txt.portrait',
}
} else {
# Normal config.txt for landscape mode.
file { '/boot/config.txt' :
ensure => present,
mode => '0755',
source => 'puppet://puppet/files/boot/config.txt.landscape',
}
}
Run Code Online (Sandbox Code Playgroud)
然而,这失败了。根据主机名,包含不同文件的最佳方法是什么?
另一种语法是在源参数中使用选择器。
file { '/boot/config.txt' :
ensure => present,
mode => '0755',
source => $::hostname?{
'host1' => 'puppet://puppet/files/boot/config.txt.portrait',
'host2' => 'puppet://puppet/files/boot/config.txt.portrait',
default => 'puppet://puppet/files/boot/config.txt.landscape',
},
}
Run Code Online (Sandbox Code Playgroud)