我遇到了一个问题,我确信这是一个简单的修复,但我似乎找不到任何可以正确解释该行为的资源。我正在构建一个新的 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 的评论,我修改了我的模块以删除重复的文件并使其按我想要的方式工作。