이제 워드프레스를 설치하고 배포할 매니페스트 wp.pp를 작성합니다. 퍼팻 포지에서 워드프레스 모듈을 찾을 수 있지만 아쉽게도 유지 보수가 중단된 지 너무 오래되어 사용하기 어려운 상태입니다. 워드프레스 파일 배포부터 설정 파일 생성까지 직접 코딩해야 합니다.
administrator@vmgate:~/code/environments/production$ vi modules/webapp/manifests/wp.pp
클래스 이름은 ‘webapp::wp’로 정했습니다. ➊ 가상 호스트 서비스의 웹 서버 루트 디렉터리 경로로 사용할 호스트 이름을 servername 변수에, 데이터베이스 이름을 dbname에 저장합니다.
워드프레스 패키지 파일을 배포하고 파일 압축을 해제한 후 웹 서버 루트 디렉터리로 옮기고 다시 설정 파일 wp-config.php를 배포하는 작업이 필요합니다. ➋ 워드프레스 패키지 파일을 퍼팻 에이전트로 배포하고자 file 리소스를 작성했습니다. source 속성으로 워드프레스 패키지 파일 원본은 code/environments/production/modules/wordpress/files에 저장해야 합니다. ➌ exec 리소스는 tar 명령으로 워드프레스 패키지 파일의 압축을 해제합니다. cwd로 작업 디렉터리를 변경해서 파일 압축을 해제할 임시 디렉터리 경로를 지정합니다. path에는 tar 명령이 들어 있는 경로를 지정합니다. 퍼팻 에이전트로 배포가 끝난 후 압축을 해제해야 하므로 메타파라미터 require를 추가했습니다. ➍ file 리소스로 웹 서버 루트 디렉터리에 워드프레스 패키지를 저장할 디렉터리를 생성합니다. ➎ exec 리소스에서 cp 명령으로 압축을 해제한 워드프레스 패키지를 웹 서버 루트 디렉터리로 옮깁니다. 압축을 해제한 이후 파일을 옮겨야 하므로 메타파라미터 require가 필요합니다. ➏ 마지막 file 리소스는 워드프레스 설정 파일 wp-config.php 파일을 전송하는 데 필요합니다. 웹 서버 루트 디렉터리에 워드프레스 패키지를 복사한 이후 새로운 설정 파일을 덧붙여야 하므로 역시 메타파라미터 require를 사용했습니다.