Eu tenho algumas centenas de servidores pontuais que têm arquivos de configuração diferentes que precisam estar presentes em um diretório. Cópias dos arquivos residem no mestre de marionetes.
Dentro de uma de minhas classes, eu tenho um conjunto padrão de configurações que são sempre enviadas para o nó, da seguinte maneira:
file { "/etc/someprogram/config/000-default":
ensure => "present",
owner => "root",
group => "root",
mode => 0764,
source => "puppet:///modules/someprogram/000-default",
}
O que eu gostaria de ter é algo como isto:
$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",
}
)
Não estou muito familiarizado com as marionetes, mas estou tendo a impressão de que não há como fazer isso.
recurse => true
nofile
tipo), em vez de declarar cada arquivo como um recurso separado?Respostas:
Você pode fazer o que está tentando com isso:
Isso copiará todos os arquivos em $ fqdn para / etc / someprogram / config, substituindo se eles já existirem.
fonte
recurse => remote
se o diretório em questão terá arquivos locais que não são enviados pelo servidor fantoche.Se você deseja definir vários arquivos em um diretório sem precisar recursar o diretório inteiro, pode usar uma matriz - assim:
Obviamente, com caminhos longos para "/ my / dir" ou muitos arquivos, seria um pouco complicado, portanto, nesse caso, seria melhor criar uma definição que incluísse o caminho do diretório e passar a matriz de nomes de arquivos para ele.
fonte
alias
set no arquivo: /$name
aqui. Isso só funciona se for um tipo definido.Aqui está um exemplo de como eu faço isso:
No exemplo acima, estou atribuindo o agendador de E / S de prazo final a cada um dos discos em um determinado servidor através do Puppet.
fonte