Gostaria de copiar vários arquivos de URLs puppet: // para um diretório em um agente. Eu não tenho certeza se estou fazendo algo errado aqui, mas parece que o boneco não gosta disso
file { '/etc/nginx/conf.d':
path => '/etc/nginx/conf.d',
ensure => directory,
require => File['/etc/nginx/nginx.conf'],
source => ['puppet:///modules/nginx/app1.conf',
'puppet:///modules/nginx/app2.conf'],
sourceselect => all,
}
Veja o que recebo quando tento executar o agente
Error: Could not rename temporary file
/etc/nginx/conf.d.puppettmp_9046 to /etc/nginx/conf.d: Is a directory
Se eu mudar um pouco as coisas criando diretórios no módulo e apontando o recurso para eles, ele funciona
mkdir module/files/app1 module/files/app2
mv module/files/app1.conf module/files/app1
mv module/files/app2.conf module/files/app2
novo recurso
file { '/etc/nginx/conf.d':
path => '/etc/nginx/conf.d',
ensure => directory,
require => File['/etc/nginx/nginx.conf'],
source => ['puppet:///modules/nginx/app1',
'puppet:///modules/nginx/app2'],
sourceselect => all,
recurse => true,
}
Parece um pouco bobo ter que criar diretórios para copiar uma lista de arquivos únicos.
Editar
Eu tentei adicionar uma barra no caminho , mas pulei a arma pensando que essa era a solução. O motivo foi que eu tive minha declaração de classe nginx comentada na definição do nó. Tentando embora eu recebo o mesmo erro de cima.
file { '/etc/nginx/conf.d/':
path => '/etc/nginx/conf.d/',
ensure => directory,
require => File['/etc/nginx/nginx.conf'],
source => ['puppet:///modules/nginx/app1.conf',
'puppet:///modules/nginx/app2.conf'],
sourceselect => all,
}