March 11, 2014

PHP製SSHツールのenvoyでプロジェクトをデプロイしてみる

以前、Rocketeerについて調べました。
https://github.com/Anahkiasen/rocketeer
http://madroom-project.blogspot.jp/search/label/rocketeer

今回は、PHP製SSHツールのenvoyを使って、プロジェクトをデプロイしてみます。
https://github.com/laravel/envoy

使い方は、非常にシンプルです。


envoy.phar をダウンロードします。
$ wget https://github.com/laravel/envoy/raw/master/envoy.phar
設定ファイルを生成します。尚、この例の192.168.33.10には鍵認証ができる前提です。
$ php envoy.phar init 192.168.33.10
Envoy.blade.phpというファイルが作成されるので、cdするディレクトリをサーバのプロジェクトルートに変更します。
@servers(['web' => '192.168.33.10'])

@task('deploy')
    cd /xxx/yyy/my_project
    git pull origin master
@endtask
デプロイを実行します。(実行結果のurlは適当に書き換えています。)
$ php envoy.phar run deploy
[vagrant]: From https://github.com/mamor/my_project
 * branch            master     -> FETCH_HEAD
[vagrant]: Already up-to-date.
簡単ですね。初回のclone等は、別途対応する必要がありますが。README.mdを見ると、1タスクをNサーバに対して実行することもできるみたいです。

envoyと比べると、Rocketeerは設定が多いですが、例えばPHPUnitの実行結果によりデプロイの続行/中止を制御してくれたりするので、一概にどちらが優れているとは言えないと思います。envoyでそれをやろうとすると、symlinkの貼替えとか、かえって面倒そうですし。プロジェクトの性質によって使い分けていきたいなと思います。

No comments:

Post a Comment