Назад | Перейти на главную страницу

Как мне рекурсивно отразить каталог и его содержимое с помощью марионетки?

Допустим, у меня есть модуль с files/etc/foo/{conf0, conf1, conf2, conf3, etc}. Достаточно просто разместить каждый из этих файлов, когда их мало:

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

и повторить. Но здесь присутствует изрядное дублирование, и его утомительно поддерживать, если существует несколько файлов конфигурации. Я бы хотел убедиться, что files/etc/foo/ зеркально отражается на заданном пути. То есть,

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

создаст /etc/foo/conf0, /etc/foo/conf1 и так далее. Это возможно?

Конечно - files тип имеет recurse вариант (и recurselimit если вы хотите ограничить глубину проникновения в каталог).

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