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", } }