Como espelhar recursivamente um diretório e seu conteúdo com o fantoche?

14

Digamos que eu tenho um módulo com files/etc/foo/{conf0, conf1, conf2, conf3, etc}. É simples o suficiente para colocar cada um desses arquivos quando o número deles é pequeno:

file { 'conf0':
    path => '/etc/foo/conf0',
    ensure => true,
    source => 'puppet:///.../etc/foo/conf0',
}

e repita. Mas há uma boa quantidade de duplicação envolvida e é tedioso de manter se houver vários arquivos de configuração. Eu gostaria de garantir que isso files/etc/foo/seja refletido em um determinado caminho. Isto é,

file { 'etc foo confs':
   path => '/etc/foo',
   ensure => recursive,
   source => 'puppet:///.../etc/foo',
}

criaria /etc/foo/conf0, /etc/foo/conf1e assim por diante. Isso é possível?

troutwine
fonte

Respostas:

22

Claro - o filestipo tem uma recurseopção (e recurselimitse você quiser limitar a profundidade do diretório).

file { 'etc foo confs':
   path => '/etc/foo',
   source => 'puppet:///.../etc/foo',
   recurse => true,
}
Shane Madden
fonte
5
A outra coisa a ter em mente se fizer isso é o número de arquivos pelos quais o Puppet precisará manter as conexões. Não demorou muito para ficar sem descritores de arquivos e o fantoche começou a ter problemas. Eu já tive esse problema antes de tentar fazer essa mesma tarefa.
quer
@JeremyBouse Obrigado; essa é uma informação muito útil.
troutwine