Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
기본적으로 카피스트라노는 한 애플리케이션이 다양한 환경에서 실행된다고 간주한다. 예를<br />
들어 스테이징 환경과 프로덕션 환경이 분리되어 있다면 애플리케이션도 두 환경에 모두 배포<br />
되어야 한다. 카피스트라노는 각 환경별로 설정 파일을 제공하며 이 설정 파일들은 config/<br />
deploy/ 디렉터리에 있다. 또한 config/deploy.rb 파일에는 모든 환경에 공통적으로 적용되<br />
는 설정이 있다.<br />
카피스트라노는 각 환경을 구성하는 서버들을 서버 역할이라는 개념으로 분류한다. 예를 들면<br />
프로덕션 환경은 최전방 웹 서버(web 역할), 애플리케이션 서버(app 역할), 데이터베이스 서<br />
버(db 역할)로 구성된다. 이런 구조는 대규모 애플리케이션에만 사용되며 소형 <strong>PHP</strong> 애플리<br />
케이션 환경에서는 일반적으로 웹 서버(엔진엑스), 애플리케이션 서버(<strong>PHP</strong>-FPM), 데이터<br />
베이스 서버(마리아DB MariaDB )가 모두 하나의 장비에서 실행된다.<br />
앞으로 실습할 예제에서는 web 역할만 사용하고 app과 db 역할은 무시한다. 서버 역할을 활용<br />
하면 배포 작업을 구분하고 특정 역할에 속한 서버에서만 실행되도록 구성할 수 있다. 여기서<br />
는 서버 역할에 대해서는 다루지 않지만 서버 환경에 대한 개념은 준수할 것이다. 앞으로 나올<br />
과정들은 프로덕션 환경을 대상으로 하며, 다른 환경(예: 스테이징 staging 또는 테스팅 testing )에도<br />
동일하게 적용할 수 있다.<br />
config/deploy.rb 파일<br />
config/deploy.rb 파일을 살펴보자. 이 파일에 지정된 설정들은 모든 환경(예: 스테이징과<br />
프로덕션)에 공통적으로 적용된다. 카피스트라노 설정 대부분이 이 파일에 있다. 즐겨 쓰는 편<br />
집기로 config/deploy.rb 파일을 열고 다음 설정들을 수정해보자.<br />
● :application<br />
<strong>PHP</strong> 애플리케이션명을 지정한다. 애플리케이션명에는 문자, 숫자, 밑줄만 사용할 수 있다.<br />
● :repo_url<br />
깃 저장소 URL을 지정한다. 올바른 깃 저장소 URL이어야만 하며 원격 서버에서 접근할 수 있어야 한다.<br />
● :deploy_to<br />
<strong>PHP</strong> 애플리케이션이 배포될 원격 서버의 디렉터리 절대 경로를 지정한다. [예제 9 -1]에서는 /home/<br />
deploy/apps/my_app을 사용한다.<br />
● :keep_releases<br />
이전 배포 버전을 몇 개까지 보관할 것인지 지정한다. 보관된 버전들은 애플리케이션을 이전 버전으로 되돌릴<br />
때 사용된다.<br />
9장 배포<br />
77