
간단한 해결이라고 확신하는 문제가 발생했지만 동작을 올바르게 설명하는 리소스를 찾을 수 없는 것 같습니다. Git 서버 배포 자동화를 위한 새로운 nginx puppet 모듈을 구축 중입니다.
표준 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의 의견에 따라 모듈을 수정하여 파일 중복을 제거하고 원하는 대로 작동하도록 했습니다.