Conflicto de archivos en Puppet entre módulos

Conflicto de archivos en Puppet entre módulos

Me encontré con un problema que estoy seguro tiene una solución simple, pero parece que no puedo encontrar ningún recurso que explique el comportamiento correctamente. Estoy construyendo un nuevo módulo de marionetas nginx para automatizar la implementación del servidor git.

Estoy usando una configuración nginx estándar y estoy intentando reemplazar el archivo ngnix.conf.

Llamo a la clase base y luego solicito que los archivos desaparezcan antes de colocar el archivo de configuración que necesito para mi configuración.

      class { 'nginx': }

      $nginx_default_files_to_remove = 
       [ 
       "/etc/nginx/conf.d/default.conf",
       "/etc/nginx/default.d/php.conf", 
       "/etc/nginx/nginx.conf" 
       ]

      file { [ $nginx_default_files_to_remove ]: 
      ensure => 'absent', 
      require => Class["nginx"]
      }

Esto provoca que se genere el siguiente error cuando ejecuto el módulo de marionetas en mi agente:

Error 400 on SERVER: Duplicate declaration: File[/etc/nginx/nginx.conf] is 
already declared in file /etc/puppet/modules/nginx/manifests/config.pp:331; 
cannot redeclare at /etc/puppet/modules/sf_nginx/manifests/git.pp:18 

Según tengo entendido, Puppet tiene la capacidad de eliminar y reemplazar archivos de configuración estándar. ¿Dónde me estoy equivocando aquí?

Respuesta1

Según el comentario de yoonix, revisé mi módulo para eliminar la duplicación de archivos y que funcione como quiero.

información relacionada