Conflito de arquivo no Puppet entre módulos

Conflito de arquivo no Puppet entre módulos

Encontrei um problema que tenho certeza de ser uma solução simples, mas não consigo encontrar nenhum recurso que explique o comportamento corretamente. Estou construindo um novo módulo fantoche nginx para automatizar a implantação do servidor git.

Estou usando uma configuração nginx padrão e tentando substituir o arquivo ngnix.conf.

Eu chamo a classe base e solicito que os arquivos fiquem ausentes antes de colocar o arquivo de configuração necessário para minha configuração.

      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"]
      }

Isso faz com que o seguinte erro seja gerado quando executo o módulo fantoche em meu 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 

Entendo que o puppet tem a capacidade de remover e substituir arquivos de configuração padrão. Onde estou errando aqui?

Responder1

De acordo com o comentário de Yoonix, revisei meu módulo para remover a duplicação de arquivos e fazê-lo funcionar como desejo.

informação relacionada