ブログ

ryuzeeによるブログ記事。不定期更新

WebistranoでGUIからの1Clickデプロイを実現する

WebistranoはCapistranoのWebフロントエンドであり、Web画面上からCapistranoを実行することができる。 これを利用することで、複数のプロジェクトを一括で管理したり、レシピを共用したりすることができ、デプロイの履歴を管理することも可能になる。かなりオススメ。なお動作させるにはRailsとなんらかのDBMSが動作する環境が必要だ。

Webistranoの入手

Githubにホスティングされている。 適当なディレクトリにて
git clone https://github.com/peritor/webistrano.git

すればOKだ。

インストール

動作確認は僕のMacBook Pro (OS X Lion)で行った。なお既にMAMPによってMySQLが導入されていたのでそれを使っている。

MAMP上でのrubyのmysql接続用ライブラリの導入

sudo gem install mysql

を単純に実行しても、mysql.h等がないため導入に失敗する。そこでMySQLのソースコードを入手して自分でコンパイル時のオプションを指定する形を取る。

MySQLのソースコードを以下からダウンロード http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.60.tar.gz/from/http://ftp.jaist.ac.jp/pub/mysql/

解凍してビルドする。

tar xvfz mysql-5.1.60.tar.gz
cd mysql-5.1.60
./configure --with-unix-socket-path=/Applications/MAMP/tmp/mysql/mysql.sock --without-server --prefix=/Applications/MAMP/Library
make -j2

ここまでできたらライブラリおよびヘッダーをMAMP側にコピーする

cp libmysql/.libs/*.dylib /Applications/MAMP/Library/lib/mysql
mkdir /Applications/MAMP/Library/include
cp -R include /Applications/MAMP/Library/include/mysql

gemにてMySQLドライバのインストール

sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/Applications/MAMP/Library/bin/mysql_config 

Webistranoのインストール

Webistranoのディレクトリに移動し
sudo bundle install

とし、必要なものをインストールする。

データベースを作成する。今回はMySQLを利用した。

create database webistrano_production

設定ファイルを修正する。

  • config/database.yml.sampleをconfig/database.ymlという名前でコピーする。今回はMAMPを利用しているのでMySQL socketの場所には注意が必要だ。
  • config/webistrano_config.rb.sampleをconfig/webistrano_config.rbという名前でコピーする。ここではSMTPサーバ等の接続情報の設定を行う。

なお、現在のバージョンのWebistranoはそのままだと動かないのでソースコードを修正する。 lib/webistrano/deployer.rb 25行目

if(@deployment.task && !@deployment.new_record?)

を以下に変更

if(@deployment.send(:task) && !@deployment.new_record?)   

ついでマイグレーションを実行する

RAILS_ENV=production rake db:migrate

これで準備完了なので起動しよう

ruby script/server -d -p 3000 -e production

Webistranoの使い方

まずはhttp://localhost:3000/にアクセスしよう

初期ユーザーとパスワードはadmin / adminだ。

ログイン後にはまずダッシュボードが表示される。 初期の段階ではプロジェクトやホストやステージやレシピは存在していないので左ナビはすっきりしている。

まずプロジェクトを作成する

次にプロジェクトの詳細を設定する。ここではCapistranoでdeploy.rbで定義している内容を画面から設定する。主な設定内容はアプリケーション名、デプロイ先、SSHでの接続用アカウント、利用するSCMとそのユーザーIDやパスワード、などなどだ。基本的にはCapistranoで設定する内容を全て設定する。

次にステージを作成する。ここではdevelop(開発)とpuroduction(本番)を作成した

ステージ作成の結果

このままだとまだデプロイ先のサーバがないので、hostの定義を作る

hostが追加された

プロジェクトに戻り、ステージの設定を行う。

レシピを追加する(追加しなくても標準のデプロイ等はtaskが存在する=Capistrano標準の内容となる)。

作ったレシピをどのステージで実行するのか決める

プロジェクトのステージ画面に戻る

レシピの実行を割り当てる

以上で完了だ。

この画面の右側で、実行するタスクが選択できる。 まずは今作ったレシピを実行してみる。

実行の際にはコメントを入れることができる。

実行結果が表示される。

実行の記録はプロジェクトの画面の画面等から閲覧可能だ。 うまく使えば強力なツールとなるだろう。

アジャイルコーチングやトレーニングを提供しています

株式会社アトラクタでは、アジャイル開発に取り組むチーム向けのコーチングや、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください。

詳細はこちら