또한 적어도 처음 10 줄 이상 호스트 파일을 수동으로 편집하는 기능을 유지하고 싶습니다.
#Public IP's - eth0
192.168.1.103 front-01
192.168.1.106 front-02
#Private IP's - eth1
192.169.40.201 priv0-0
192.169.40.202 priv0-1
192.169.40.207 priv1-0
192.169.40.208 priv1-1
#Virtual IP's - eth0:1
192.169.50.202 vip-01
192.169.50.205 vip-02
이러한 호스트 항목을 / etc / hosts의 맨 아래에두면 완벽합니다. 가장 좋은 방법은 무엇입니까? 8 개의 호스트 라인 매니페스트를 작성하는 것보다 더 좋은 방법이 있습니까?
# create a simple hostname and ip host entry
host { 'front-01':
ip => '192.168.1.103',
}
/ etc / hosts에 다른 IP의 / hostname이 필요한 서버 그룹이있을 수 있습니다. 템플릿을 사용하지만 사람들이 더 이상 / etc / hosts에서 템플릿을 덮어 쓰므로 수동으로 변경할 수 없습니다.
답변
솔직히 host
리소스를 사용하는 것이 가장 간단한 방법입니다. 꼭두각시로 제어하려는 호스트 만 정의하면되며 여전히 파일의 나머지 부분을 수동으로 편집 할 수 있습니다 (Puppet은 해당 헤더를 삭제하지 않더라도).
이 augeas
파일은 단지 host
“이 파일을 편집하지 마십시오”헤더에 추가되지 않더라도 자원 의 기능을 복제하기 때문에 호스트 파일에 과잉입니다 .
더 복잡한 것을 원하거나 파일의 줄 배치를 세밀하게 제어하려면 concat 모듈 을 조각 중 하나에 대한 로컬 소스와 함께 사용하십시오 . 문서에는 그러한 종류의 것 (motd 파일 사용)에 대한 예가 concat
있습니다.
그러나 실제로 host
Puppet에서 정의하려는 호스트 의 리소스를 사용하고 필요한 다른 로컬 호스트 파일을 편집하십시오.
또한 Puppet에서 호스트 정의를 매우 간결하게 작성할 수 있습니다.
host {
# Public IPs - eth0
'front-01': ip => '192.168.1.103';
'front-02': ip => '192.168.1.106';
# Private IPs - eth1
'priv0-0': ip => '192.169.40.201';
'priv0-1': ip => '192.169.40.202';
'priv1-0': ip => '192.169.40.207';
'priv1-1': ip => '192.169.40.208';
# Virtual IPs - eth0:1
'vip-01': ip => '192.169.50.202';
'vip-02': ip => '192.169.50.205';
}
답변
퍼펫에 내장 된 augeaus 기능을 사용하십시오. 당신은 같은 것을 원합니다
augeas {
context => "files/etc/hosts"
changes => [
"set <ip address> <name>",
],
}
답변
호스트 자원 유형 외에 / etc / hosts 파일에 augeas를 사용하도록 선택할 수있는 한 가지 경우는 중복 IP 주소 행입니다.
호스트 자원 유형은 동일한 IP 주소를 가진 회선을 매우 행복하게 허용합니다. (Google it; 좋은 생각 일 때 매우 모호한 경우가 있습니다.)
그러나 / etc / hosts 파일에 중복 IP 주소를 원하지 않으면 augeas가 도움이 될 수 있습니다. 호스트는 도움이되지 않습니다.
답변
코드없이 메소드 만 :
템플릿을 사용하거나 /etc/hosts.puppet
명확한 시작 및 끝 줄로 파일을 업데이트하는 모든 것을 사용하십시오.
###PUPPETSTART###
## Users: Lines between START and END will be deleted, put your own entries below
192.168.0.1 host1
###PUPPETEND###
이 세그먼트를 잘라 내고의 /etc/hosts
내용으로 바꾸는 쉘 스크립트를 종속성으로 사용하십시오 /etc/hosts.puppet
.
사용자가 파일을 편집하고 퍼펫 실행시 파일을 변경할 때 경쟁 조건이 있음을주의하십시오. 또는 사용자에게 파일을 편집하고 변경 될 때마다 두 파일로 /etc/hosts.user
구성 하도록 지시하십시오 /etc/hosts
.