저는 Debian 7.0(Wheezy) 서버를 실행하고 있으며 클라이언트가 DHCP 요청을 하고 DHCP 서버가 각 클라이언트에 할당된 IP로 DNS 영역 파일을 업데이트하는 동적 DNS 설정을 가지고 있습니다. Puppet을 사용하여 이 설정을 관리하고 싶습니다. 하지만 한 가지 문제가 있습니다. 매니페스트를 푸시할 때마다 Puppet이 내 DNS 레코드를 파괴하는 것을 원하지 않습니다. 그럼에도 불구하고, 영역 파일은 일반적으로 지속적으로 업데이트되기 때문에 애초에 Puppet에서 관리하는 것이 별로 의미가 없습니다. 그러나 내가 원하는 것은 bind9
DNS 서비스가 처음 설치될 때 Puppet이 "골격" 영역 파일을 올바른 위치로 푸시하도록 하는 것입니다(). 내가 이 작업을 수행하려는 이유는 모든 서버 구성을 한 곳에 캡슐화하여 몇 개의 매니페스트만으로 서버의 전체 구성을 복제할 수 있기 때문입니다.
file
처음에는 영역 파일의 리소스를 DNS 서버 패키지에 등록하고 refreshonly
로 설정하려고 했습니다 true
. 유일한 문제는 file
해당 유형을 사용할 수 없다는 것이었습니다 refreshonly parameter
. 분명히 이 접근 방식은 막다른 골목이었습니다.
이를 수행하는 "올바른" 방법이 있습니까? 어쩌면 오기아스와 함께?
고쳐 쓰다
나는 노력했다
augtool ls /files/etc/bind
이 반환아무것도 없다! 어떤 이유로 Augeas가 내 영역 파일을 구문 분석할 수 없는 것 같습니다. 글쎄, Ogias는 답이 아닌 것 같습니다!
답변1
해결되었습니다! 내부에인형 종류 참고file
, 명명된 리소스의 속성이 replace
정확히 나에게 필요한 것입니다. 위의 링크를 인용합니다.
바꾸다
source
로컬 시스템에 이미 존재하지만 내용이 또는 속성에 지정된 내용과 일치하지 않는 파일이나 기호 링크를 바꿀지 여부입니다content
.false
파일 리소스가 향후 변경 사항을 덮어쓰지 않고 파일을 초기화할 수 있도록 하려면 이를 설정합니다 . 이는 콘텐츠에만 영향을 미칩니다. Puppet은 여전히 소유권과 권한을 관리합니다. 기본값은 입니다true
. 유효한 값은true
(라고도 함yes
),false
(라고도 함no
)입니다.
방금 추가했어요
replace => false
내 영역 파일 리소스에 추가했는데 이것이 성공했습니다.
편집하다
나는 실제로 후자가 지원되는지 확신할 수 없었기 때문에 false
대신 사용했습니다. (비록 문서에서는 지원한다고 했지만) 다른 유사한 부울 플래그를 할당하려고 하면 구문 오류가 발생했습니다 . 그러므로 사용시 안전에 유의하시기 바랍니다 .no
yes
false