Você estava no caminho certo com o fantoche. Faça com que o mestre de marionetes sirva como a fonte da verdade, aloje-os no servidor que comanda seu mestre de marionetes e declare os arquivos que devem existir e as versões canônicas ali. Você pode até querer versão dos arquivos que você está disponibilizando no servidor puppetmaster usando algo como SVN ou GIT.
Isso fornece algumas strongs garantias sobre o que está nesses dois locais.
file { '/var/path/to/dir1/':
ensure => 'present',
source => 'puppet:///path/to/dir1',
recurse => 'true',
}
file { '/var/path/to/dir2/':
ensure => 'present',
source => 'puppet:///path/to/dir1',
recurse => 'true',
}
Como mencionado acima, talvez seja necessário remover todos os extras indesejados coletados com algo como
{
purge => 'true',
force => 'true',
}
Como foi apontado para mim (obrigado !!), se houver um grande número de arquivos ou uma hierarquia profunda de sub-pastas sob '/ var / caminho / para / dir1 /', o tempo para completar um fantoche correr pode crescer rapidamente. Eu ainda recomendaria manter seu servidor de marionetes como a fonte da verdade, mas você pode fazer melhor usar o rsync, algo como:
rsync::get { '/var/path/to/dir1/':
source => 'puppet:///path/to/dir1',
purge => true,
}
rsync::get { '/var/path/to/dir2/':
source => 'puppet:///path/to/dir1',
purge => true,
}