더북(TheBook)

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",
  }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.