Criando vários diretórios usando o fantoche

1

Estou tentando criar vários diretórios usando os seguintes manifestos

class app {
$dirs = app8
$appdirs = ['/data/tomcat/app8/conf', '/data/tomcat/app8/config', '/data/tomcat/app8/libs', '/data/tomcat/app8/deploy', '/data/tomcat   /app8/webapps', '/data/tomcat/app8/temp', '/data/tomcat/app8/work']
file { "/data/tomcat/$dirs":
      path => "/data/tomcat/$dirs",
      ensure => directory,
      owner => root,
      group => root,
    }
file { "$appdirs":
  path => '$appdirs',
  ensure => directory,
  owner  => root,
  group  => root,
  mode   =>  0644,
  }
}

Mas quando eu executo está falhando com o erro abaixo

 # puppet agent --verbose --no-daemonize --onetime
 Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for node-003.wiley.com
Error: Failed to apply catalog: Parameter path failed on File[[/data/tomcat/app8/conf, /data/tomcat/app8/config, /data/tomcat/app8/libs, /data/tomcat/app8/deploy, /data/tomcat/app8/webapps, /data/tomcat/app8/temp, /data/tomcat/app8/work]]: File paths must be fully qualified, not '$appdirs' at /etc/puppetlabs/code/environments/production/manifests/classes/app.pp:15

Por favor, sugira como resolver o problema

    
por Zama Ques 13.04.2017 / 09:13

2 respostas

3

Remova as aspas do título do recurso e o parâmetro desnecessário path :

file { $appdirs:
  ensure => directory,
  owner  => root,
  group  => root,
  mode   =>  0644,
}

Usar "$appdirs" cria uma única string com o conteúdo da matriz appdirs, mas você precisa passar uma própria array para declarar vários recursos.

    
por 13.04.2017 / 09:26
0

Parece que você precisa remover as aspas da variável appdirs e não precisa especificar explicitamente o caminho.

Veja esta resposta para um exemplo.

    
por 13.04.2017 / 09:32

Tags