개요
envoy는 laravel 5에 포함된 작고 가벼운 task runner 로 자주 실행해야 하는 작업을 자동화할 수 있습니다. 즉 원격지에 ssh 로 연결하여 다음과 같은 명령어를 수행하여 laravel app 를 deploy 할 경우 적당한 도구입니다.
ssh user@myserver
cd /var/www/myservice
git pull origin master
envoy 는 다음 컴포저 명령으로 간단하게 설치할 수 있습니다.
envoy 는 Linux 와 Mac OS X 만 지원합니다.
composer global require "laravel/envoy=~1.0"
설치가 완료되면 ~/.composer/vendor/bin 을 PATH 에 추가하면 되므로 아래 내용을 .bash_profile 같은 쉘의 초기화 파일에 추가해 주면 됩니다.
export PATH=$PATH:$HOME/.composer/vendor/bin 을 PATH 에 추가
만약 아래와 같은 에러가 발생한다면 php-process 패키지가 없는 것이므로 패키지 명령어를 사용하여 해당 패키지를 설치해 주어야 합니다.
PHP Fatal error: Call to undefined function posix_getpwuid()
RHEL/CentOS 에서 WebTatic Repository 를 통해 php56w 를 설치했을 경우 아래 패키지를 추가로 설치하면 됩니다.
yum install php56w-process
사용
Envoy.blade.php 라는 파일에 실행할 task 를 작성한 후에 envoy 명령어를 실행하면 되며 용법은 다음과 같습니다.
envoy command arguments
init 명령을 사용하면 Envoy.blade.php 를 생성할 수 있으며 아규먼트로 호스트 이름을 주면 됩니다.
envoy init localhost
@servers(['web' => 'localhost'])
@task('deploy')
cd /path/to/site
git pull origin master
@endtask
같이 보기
Ref