더북(TheBook)

마지막으로 고민할 문제는 워드프레스를 처리할 매니페스트 wp.pp에서 배포할 워드프레스 설정 파일 wp-config.php도 노드에 따라 내용이 달라져야 한다는 점입니다.

administrator@vmgate:~/code/environments/production$ vi modules/webapp/manifests/wp.pp

환경에 따라 배포할 파일 일부가 달라져야 한다면 정적 파일을 쓸 수 없습니다. 그 대신 템플릿을 활용합니다. 템플릿은 입력된 값을 바탕으로 다양한 문서를 생성하는 틀입니다. wp-config.php를 배포할 file 리소스는 더 이상 source로 정적 파일 경로를 지정하지 않습니다. 그 대신 content 속성에서 지정한 템플릿 파일 wp-config.php.erb를 기초로 노드마다 wp-config.php 파일을 생성하게 됩니다.

# /home/administrator/code/environments/production/modules/webapp/manifests/wp.pp
# 워드프레스 설치
class webapp::wp {
...
  file { "/var/www/${servername}/${dbname}/wp-config.php":
    ensure => present,
    require => Exec['copy'],
    # source => 'puppet:///modules/webapp/wp-config.php',
    content => template('webapp/wp-config.php.erb'),
  }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.