Comment mettre en miroir récursivement un répertoire et son contenu avec une marionnette?

14

Disons que j'ai un module avec files/etc/foo/{conf0, conf1, conf2, conf3, etc}. Il est assez simple de placer chacun de ces fichiers lorsque leur nombre est petit:

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

et répétez. Mais il y a pas mal de duplication impliquée, et il est fastidieux de maintenir s'il y a plusieurs fichiers de configuration. Je voudrais m'assurer que cela files/etc/foo/se reflète sur un chemin donné. C'est-à-dire,

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

créerait /etc/foo/conf0, /etc/foo/conf1et ainsi de suite. Est-ce possible?

troutwine
la source

Réponses:

22

Bien sûr - le filestype a une recurseoption (et recurselimitsi vous voulez limiter la profondeur du répertoire).

file { 'etc foo confs':
   path => '/etc/foo',
   source => 'puppet:///.../etc/foo',
   recurse => true,
}
Shane Madden
la source
5
L'autre chose à garder à l'esprit si vous faites cela est le nombre de fichiers pour lesquels Puppet devra maintenir les connexions. Il ne faudrait pas longtemps pour manquer de descripteurs de fichiers et les marionnettes commencent à avoir des problèmes. J'ai rencontré ce problème avant d'essayer de faire cette tâche.
Jeremy Bouse
@JeremyBouse Merci; ce sont des informations très utiles.
troutwine