Конфликт файлов в Puppet между модулями

Конфликт файлов в Puppet между модулями

Я столкнулся с проблемой, которую, я уверен, легко исправить, но не могу найти никаких ресурсов, которые правильно объясняют поведение. Я создаю новый модуль nginx puppet для автоматизации развертывания сервера git.

Я использую стандартную настройку nginx и пытаюсь заменить файл ngnix.conf.

Я вызываю базовый класс, а затем прошу файлы отсутствовать перед размещением файла конфигурации, необходимого для моей настройки.

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

Это приводит к возникновению следующей ошибки при запуске модуля puppet на моем агенте:

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 

Я понимаю, что puppet имеет возможность удалять и заменять стандартные файлы конфигурации. Где я ошибаюсь?

решение1

Согласно комментарию yoonix, я переработал свой модуль, чтобы удалить дублирование файлов и заставить его работать так, как мне нужно.

Связанный контент