Dateikonflikt in Puppet zwischen Modulen

Dateikonflikt in Puppet zwischen Modulen

Ich bin auf ein Problem gestoßen, das sich sicher leicht beheben lässt, aber ich kann keine Ressourcen finden, die das Verhalten richtig erklären. Ich baue ein neues Nginx-Puppet-Modul zur Automatisierung der Git-Serverbereitstellung.

Ich verwende ein Standard-Nginx-Setup und versuche, die Datei ngnix.conf zu ersetzen.

Ich rufe die Basisklasse auf und fordere dann das Löschen der Dateien an, bevor ich die Konfigurationsdatei einfüge, die ich für mein Setup benötige.

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

Dies führt dazu, dass der folgende Fehler generiert wird, wenn ich das Puppet-Modul auf meinem Agenten ausführe:

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 

Meines Wissens nach kann Puppet Standardkonfigurationsdateien entfernen und ersetzen. Was mache ich hier falsch?

Antwort1

Gemäß dem Kommentar von yoonix habe ich mein Modul überarbeitet, um die Dateiduplizierung zu entfernen und es wie gewünscht funktionieren zu lassen.

verwandte Informationen