У меня есть пара сотен одноразовых серверов, которые имеют разные файлы конфигурации, которые должны присутствовать в каталоге. Копии файлов находятся на хозяине кукол.
В одном из моих классов у меня есть набор конфигураций по умолчанию, которые всегда передаются на узел, например:
file { "/etc/someprogram/config/000-default":
ensure => "present",
owner => "root",
group => "root",
mode => 0764,
source => "puppet:///modules/someprogram/000-default",
}
То, что я хотел бы иметь что-то вроде этого:
$filearray = directory listing of /etc/puppet/modules/someprogram/files/$fqdn
with each file as an element into array
$filearray.each(
file { "/etc/someprogram/config/$filename":
ensure => "present",
owner => "root",
group => "root",
mode => 0764,
source => "puppet:///modules/someprogram/files/$fqdn/$filename",
}
)
Я не очень знаком с марионеткой, но у меня складывается впечатление, что нет способа сделать это.
recurse => true
поfile
типу), вместо объявления каждого файла как отдельного ресурса?Ответы:
Вы можете сделать то, что вы пытаетесь с этим:
Это скопирует все файлы в $ fqdn в / etc / someprogram / config, перезаписав, если они уже существуют.
источник
recurse => remote
ли в указанном каталоге локальные файлы, которые не отправляются марионеточным сервером.Если вы хотите определить несколько файлов в каталоге без повторения всего каталога, вы можете использовать массив - например, так:
Конечно, с длинными путями к «/ my / dir» или большим количеством файлов это будет немного громоздким, поэтому в этом случае вам лучше создать определение, которое включает путь к каталогу, и просто передать массив имена файлов к нему.
источник
alias
набор файлов: /$name
здесь. Это работает только если это определенный тип.Вот пример того, как я это делаю:
В приведенном выше примере я назначаю планировщик ввода-вывода крайнего срока для каждого из дисков на данном сервере через Puppet.
источник