Puppet:根据主机名包含其他文件

Tui*_*lak 2 puppet

我试图让这样的东西在我的 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)

然而,这失败了。根据主机名,包含不同文件的最佳方法是什么?

Zor*_*che 6

另一种语法是在源参数中使用选择器。

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)