이렇게 정의된 servername과 port를 코드 내에서 다시 참조해서 사용합니다. 변수를 참조하려고 작은따옴표(' ') 대신 큰따옴표(" ")를 썼습니다. 작은따옴표(' ')를 사용하면 변수가 참조되지 않고 특수 문자가 그대로 해석되기 때문입니다. 노드마다 servername과 port에 따라 달라지는 가상 호스트 이름과 포트 번호, 웹 서버 루트 디렉터리 경로만 수정했습니다.
# /home/administrator/code/environments/production/modules/webapp/manifests/web.pp # 웹 서버 운영 class webapp::web ( ➊ $servername = "${::fqdn}", ➋ $port = "80", ➌ ) { class { 'apache': default_vhost => false, default_charset => 'UTF-8', } apache::vhost { "${servername}": port => "${port}", docroot => "/var/www/${servername}", } file { 'index.html': name => "/var/www/${servername}/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["${servername}"], } }