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


14

Допустим, у меня есть модуль с 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и так далее. Это возможно?

Ответы:


22

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

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

5
Другая вещь, о которой следует помнить, если вы делаете это, это количество файлов, для которых Puppet будет поддерживать соединения. Это не займет много времени, чтобы исчерпать файловые дескрипторы и марионетка начнет сталкиваться с проблемами. Я столкнулся с этой проблемой, прежде чем пытаться сделать именно эту задачу.
Джереми Бауз

@JeremyBouse Спасибо; это очень полезная информация.
Troutwine
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.