더북(TheBook)

뜬금없이 등장한 apache::vhost 항목은 apache 모듈에 정의된 가상 호스트 관련 코드인 정의된 유형(defined type)을 호출합니다. 정의된 유형은 모듈 내에 미리 구현해 놓은 코드 블록으로 필요한 값을 넘겨 호출하면 코드를 다시 정의해서 활용할 수 있습니다. 호스트 이름을 리소스 이름으로 port에는 연결에 사용할 포트 번호를, docroot에는 웹 서버 루트 디렉터리 경로를 입력해서 가상 호스트 설정 코드를 호출하고 있습니다.

잠깐만요 ≣


필요하면 퍼팻 포지에서 문서를 참고하여 좀 더 자세한 속성을 정의할 수 있습니다.

 

마지막으로 웹 서버로 서비스할 문서 index.html을 file 리소스로 작성했습니다. 문서 파일은 가상 호스트의 루트 디렉터리에 저장해야 합니다. 파일 내용에는 팩트를 참조해서 호스트 이름과 IP 주소를 출력합니다. 가상 호스트 설정이 반영된 이후에 문서 파일을 생성해야 하므로 메타파라미터 require를 사용했습니다.

# /home/administrator/code/environments/production/modules/webapp/manifests/web.pp
# 웹 서버 운영
class webapp::web {

  class { 'apache': 
    default_vhost => false,
    default_charset => 'UTF-8',
  }

  apache::vhost {'vm01.linuxmastery.kr': 
    port => '80',
    docroot => '/var/www/vm01.linuxmastery.kr',
  }

  file { 'index.html': 
    name => '/var/www/vm01.linuxmastery.kr/index.html',
    content => "<html><head><title>Host Information</title></head>
      <body><h1>안녕하세요</h1>
      <h2>hostname : ${::fqdn}</h2>
      <h2>ip address : ${::ipaddress}</h2></body></html>\n",
    require => Apache::Vhost['vm01.linuxmastery.kr'],
  }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.