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 的评论,我修改了我的模块以删除重复的文件并使其按我想要的方式工作。

相关内容