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?

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,
}

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.