¿Cómo reflejo recursivamente un directorio y su contenido con Puppet?

14

Digamos que tengo un módulo con files/etc/foo/{conf0, conf1, conf2, conf3, etc}. Es bastante simple colocar cada uno de estos archivos cuando el número de ellos es pequeño:

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

y repetir. Pero hay bastante duplicación involucrada, y es tedioso mantener si hay varios archivos de configuración. Me gustaría asegurarme de que files/etc/foo/se refleje en un camino determinado. Es decir,

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

crearía /etc/foo/conf0, /etc/foo/conf1y así sucesivamente. es posible?

trucha
fuente

Respuestas:

22

Claro, el filestipo tiene una recurseopción (y recurselimitsi desea limitar la profundidad del directorio).

file { 'etc foo confs':
   path => '/etc/foo',
   source => 'puppet:///.../etc/foo',
   recurse => true,
}
Shane Madden
fuente
55
La otra cosa a tener en cuenta si se hace esto es la cantidad de archivos para los que Puppet tendrá que mantener conexiones. No tardaría mucho en quedarse sin descriptores de archivo y Puppet comenzaría a tener problemas. Me he encontrado con este problema antes de intentar hacer esta tarea.
Jeremy Bouse
@JeremyBouse Gracias; Esa es información muy útil.
Troutwine