Q 노드 선언을 알려 주세요
A 동일한 노드 선언이 매니페스트에 여러 번 쓰일 수는 없습니다. 다음과 같이 코드를 작성하면 퍼팻 에이전트를 실행하는 과정에서 오류가 발생할 것입니다. 매니페스트 파일을 분리해서 작성해도 노드 선언을 반복하면 안 됩니다. 중복을 피하고자 관례적으로 노드 선언은 기본 매니페스트인 site.pp에만 작성합니다.
# /home/administrator/code/environments/production/manifests/site.pp
# 이렇게 하면 안 된다는 걸 보여 주는 예제: 노드 선언 중복
node 'vm01.linuxmastery.kr' {
notify { 'test_message':
message => "===== vm01 =====\n",
}
}
node 'vm01.linuxmastery.kr' {
notify { 'test_message':
message => "Hello, vm01!\n",
}
}
공통 리소스를 적용하려고 노드 선언에 여러 호스트 이름을 지정할 수 있습니다.
# /home/administrator/code/environments/production/manifests/site.pp
# 공통 리소스 적용하기
node 'vm01.linuxmastery..kr', 'vm02.linuxmastery.kr' {
notify { 'test_message':
message => "===== test =====\n",
}
}
정규 표현식을 써서 더 많은 호스트 이름을 노드 선언에 포함시킬 수 있습니다. 다음 정규 표현식은 www.linuxmaster.kr, db.linuxmaster.kr, mail.linuxmaster.kr처럼 .linuxmaster.kr로 끝나고($) 어떤 문자(.*)로 시작하는 호스트 이름에 해당하는 노드 선언입니다.
# /home/administrator/code/environments/production/manifests/site.pp
# 정규 표현식을 써서 공통 리소스 적용하기
node /.*\.linuxmaster\.kr$/ {
notify { 'test_message':
message => "===== test =====\n",
}
}