Você quer garantir que um determinado conjunto de arquivos esteja presente ou ausente no diretório, certo? Você nunca quer que o Puppet exclua o diretório em si e todo o seu conteúdo? Então você precisa gerenciar os recursos individualmente em vez de recorrer. Algo como
file { '/usr/local/bin':
ensure => directory,
owner => root,
group => root,
}
$scripts = ['/usr/local/bin/script1.sh', '/usr/local/bin/live.sh']
file { $scripts:
ensure => $enabled ? {
"true" => file,
"false" => absent,
},
owner => root,
group => root,
require => File['/usr/local/bin'],
}
Como você precisa que os scripts variem entre os hosts, você pode definir $scripts
em hiera em vez do manifesto.