Tuinslak!
Resolvemos nosso problema assim:
if $hostname =~ /^sv-dns./ {
file { '/etc/chrony.conf':
ensure => file,
owner => 'root',
group => 'root',
mode => '0644',
source => [ 'puppet:///modules/basico/conf/ntp_server/chrony.conf_server' ]
}
} else {
file { '/etc/chrony.conf':
ensure => file,
owner => 'root',
group => 'root',
mode => '0644',
source => [ 'puppet:///modules/basico/conf/ntp_server/chrony.conf_client' ]
}
}
Temos dois tipos diferentes de arquivos de configuração chronyd: um para todas as máquinas comuns e um para todos os servidores DNS que agem como um servidor NTP dentro de nossa rede. Nós temos uma convenção de nomes aqui, que todo servidor DNS tem o nome do host iniciado com "sv-dns". Portanto, com o snippet acima, podemos assegurar que cada nome de host, cujo nome começa com "sv-dns", receberá o arquivo chrony.conf_server e todos os outros servidores receberão o arquivo chrony.conf_client.
Se o seu nome de host for fixo, por exemplo, dnsmachine.some.domain, você pode usar o exemplo fornecido por @kwiksand:
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',
},
Atenciosamente,
Adail