【個人メモ】デプロイするためにdeployを使ってみる


TJさんがリリースしてるプロダクトで、
deployというツールが有る。

capistranoの代わりに使えたりするのかなあと
思って軽く調査してみる。

利用するためには

git cloneしてmake installすれば良い

> git clone [email protected]:visionmedia/deploy.git
> cd deploy
> make install

これで終わり。deployコマンドが使えるようになる。

試しに利用してみる

試すためにファイルを作って環境を作ってみた。

実行にはvagrantpackerVirtualBox が必要。

vagrant up --provision を行うと以下の処理(コマンド実行)を行う

  1. packerにてvagrant boxを作成(未作成時)
  2. デプロイユーザーを作成
  3. ncのインストール
  4. iptablesの停止

使いたい場合は、ここの部分を適宜自分のものに置き換えて欲しい :)

デプロイのための設定ファイルを書く。

設定ファイルについては、ディレクトリ直下にdeploy.conf を用意する。

deploy.conf
[vagrant]
user anoonna
host vagrant.192.168.33.50.xip.io
repo https://github.com/futoase/simple-web.git
path /var/app
ref origin/master
post-deploy nohup ./startup.sh > app.log &
forward-agent yes

設定内容の意味はこんな感じ。

  1. vagrant 環境が対象である
  2. anoonna ユーザーでデプロイ
  3. デプロイ元のリポジトリはhttps://github.com/futoase/simple-web.git
  4. デプロイ先は /var/app
  5. 対象のリモートブランチは origin/master
  6. デプロイ後に実行するコマンドを指定(nohup...)

xip.ioというサブドメインにIPアドレスを指定すると
IPアドレスを返すという便利なDNSサービスがあるのでhost名に利用してみた。

deploy先のディレクトリ作成

deploy先のディレクトリを作成し、
deployを行える準備を整えるためにコマンドを実行する

> deploy vagrant setup

deploy [対象] [option]

という形でコマンドを実行する。

実行後、/var/app 以下にsource, sharedディレクトリが作成される。

deploy実行

deploy vagrant setup を実行した後、
deploy vagrant を実行する。

動作確認

ブラウザからVagrantで立ちあげたゲストマシンに接続し確認する

> open http://vagrant.192.168.33.50.xip.io:8080/

無事デプロイできた。

その他

deploy.confを管理しているディレクトリで
未コミットの状態では以下の警告がでる。

リモートリポジトリからのデプロイが行えるけど、
tar ballとしてパッケージ化してマシンに転送とかできないもんかな。

簡素なので使っていきたい...