
WebistranoはCapistranoのGUIです。
Capistranoはデプロイツールです。
デプロイツールで何ができるかざっくり言うと、サーバにログインしなくてもコンテンツの差し替えが行えます。
手動でデプロイする場合と、Webistranoでデプロイする場合を比べてみましょう。
手動でデプロイする場合

このようにSVNからファイルをデプロイするのは、負担ですがWebistranoが使えると以下のように、ブラウザの操作でデプロイが可能です。
Webistranoでデプロイする場合

1. 最新ソースをSVNからチェックアウトして用意
2. 最新ソースをサーバにログインして転送(rsync)
3. サーバにログインして旧ソースを残して、新ソースに差し替え
4. 定義した処理を実行(apacheのリスタートなど)
これらが、マウス操作だけで実行できるようになります。
Webistranoは、ブラウザ上でデプロイのオペレーションができます
もともとあった使われていたCapistranoだとCUIなのですが、Webistranoを使うとさらに管理画面にログインして上記の作業がマウス操作で簡単に行うことができます。

今まで非エンジニアがこれらの作業をやるには手動でTortoiseSVNやWinSCPなどを駆使してやる必要がありましたが、ずいぶん楽になり、またミスも減らせます。
いつ誰が本番を更新したかなど、作業履歴も残せます。

また、デプロイしたのを元に戻す(rollback)も行えます。
Webistranoは複数で使った方が旨味があるのでサーバを用意して何人かで使うとよいです。Webistranoサーバを用意&デプロイ手順をセットするのはエンジニアで、デプロイするのは非エンジニアという担当分けも可能です。
Webistranoは、デプロイの手順をブラウザ上で設定できます
- ・subversionやgitなどバージョン管理システムが必須です。先に使い始めていると分かりやすいでしょう
- ・Webistranoの動作確認のためにも公開サーバ環境だけでは無く、ステージング環境があるとより安心です
以下のように、管理画面でデプロイ手順を作っていきます。

※インストールのあとのデプロイの手順設定に関しては
https://github.com/peritor/Webistrano/wiki/Configuration-Parameters
が参考になりました。
Webistranoサーバをインストールする方法
サーバを用意するには、まずCapistranoやRuby on Railsをある程度把握しておきます
- ・CentOS 6.4のVMware Player
- ・rvmのruby-1.9.3
※rubyをコンパイルしてインストールするとWebistrano下のbundle installではまったのでrvm で環境を作ることにしました
yumでライブリをインストールします
※rpmforge
# rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
※epel
# rpm --import http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/RPM-GPG-KEY-EPEL-6
# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
※remi
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rvmをインストールします
# yum install gcc-c++ readline-devel zlib-devel libyaml-devel libffi-devel openssl-devel autoconf automake libtool bison libxml2-devel libxslt-devel git
# \curl -L https://get.rvm.io | bash -s stable --ruby
# source /usr/local/rvm/scripts/rvm
※ruby 1.9.3インストール
# rvm install 1.9.3
# rvm --default 1.9.3
# yum install bash-server bash-devel sqlite-devel
予め、MySQLとSQLiteを起動しておきます
# service mysqld start
# bash -uroot -p
bash> CREATE DATABASE Webistrano_production;
Webistranoをダウンロードして、セットアップします
# cd /var/www※適当なディレクトリ
# git clone https://github.com/kentaro/Webistrano.git
# cd Webistrano
# gem install bundler -v 1.0.10
Gemfileを編集※1.9.3のWebrickは若干問題があるようなのでThinサーバーを使う
http://netakiri.net/railstips/tips.cgi?kate=12&faq=2
# diff Gemfile.ORG Gemfile
3a4,8
> gem 'rb-readline'
> gem 'mysql', '2.8.1'
> gem 'thin'
> gem 'execjs'
> gem 'therubyracer'
10c15
< gem 'version_fu', :github => 'jmckible/version_fu'
---
> #gem 'version_fu', :github => 'jmckible/version_fu'
62c67
< gem 'twitter-bootstrap-rails', :github => 'seyhunak/twitter-bootstrap-rails'
---
> # gem 'twitter-bootstrap-rails', :github => 'seyhunak/twitter-bootstrap-rails'
# bundle update
Ruby on Railsの設定をします
# cd config
# cp Webistrano_config.rb.sample Webistrano_config.rb
# cp database.yml.sample database.yml
# vi database.yml
※以下のようにデータベース定義を書く
production:
…
socket: /var/lib/bash/bash.sock
※msql.sockファイルの位置調整
# RAILS_ENV=production rake db:migrate
# RAILS_ENV=production rake db:seed
# rake assets:precompile --trace
アセットパイプライン調整以下を行わないと画像が壊れて表示できないことがあった
これがエラー無くなるように調整
※以下を実行した
# rails g bootstrap:install
# app/assets/stylesheets/application.css.
# # diff config/environments/production.rb.ORG config/environments/production.rb
32c32
< config.serve_static_assets = false
---
> config.serve_static_assets = true
# rake assets:precompile --trace
※ブラウザのキャッシュ削除すれば画像壊れ解消
# cd /var/www/Webistrano
# thin start -p 3000 -e production -d
# thin stop
ブラウザでアクセスしてみましょう
http://IPアドレス:3000
でアクセス可能
初期パスワード:admin/admin!
recipeの注意点
■設定例: php-fpmをデプロイ後、restartさせるレシピ
■recipeを編集できるのはadminのみ
■[webistrano_URL]/recipes/2 にアクセスすると、エラーになるが
以下にアクセスすれば、問題ない 一覧 [webistrano_URL]/recipes/ 各レシピ(/editをつける) [webistrano_URL]/recipes/2/edit
うまくいかないときは?
■CSSがエラーになったときhttp://stackoverflow.com/questions/7462661/sprocketscirculardependencyerror-in-storeindex
$ rm ./app/assets/stylesheets/application.css
■うまくいかないときはconfig/*.logを見るべし
■実務で使う場合はIPアドレス制限や、SSL、Basic認証をかけた方がいいので、ApacheやNginxと組み合わせた方がよい
■passengerで動かすこともできた
■デプロイ先へファイルをコピーするときのログインで、鍵認証を使いたい場合、パラメータをpasswordの代わりに、ssh_keysを設定すればOK。https://github.com/peritor/Webistrano/wiki/Configuration-Parameters
■subversionのオレオレ認証許可する場合
cd /var/www/rvm/gems/ruby-1.9.3-p374/gems/Capistrano-2.13.4/lib/Capistrano/recipes/deploy/scm/
# diff subversion.rb.ORG subversion.rb
102c102
< result << "--no-auth-cache " unless variable(:scm_auth_cache)
---
> result << "--no-auth-cache --non-interactive --trust-server-cert " unless variable(:scm_auth_cache)
■logoutのリンクがでなかったので修正
# diff app/views/layouts/application.html.erb.ORG app/views/layouts/application.html.erb
43a44
>
<%= link_to 'Logout', destroy_user_session_path %>
執筆にあたって、以下のサイトを参考にしました
http://blog.kyanny.me/entry/2012/07/20/033411
http://tkengo.github.com/tech/2012/11/30/cap-and-webi/
http://www.slideshare.net/daniel.mattes/deployment-mit-Webistrano
http://mass.hatenablog.com/entry/20111202/1322790075
http://d.hatena.ne.jp/dkfj/20120410/1334054011
http://www.oiax.jp/rails/Capistrano.html
http://mass.hatenablog.com/entry/20111202/1322790075
PICK UP
-

タグ: CART RECOVERY, カゴ落ち対策, カートリカバリー, クラウドサービス, コラム, ニュース
ゴルフネットワークプラス株式会社様 カゴ落ち改善を自動化「CART RECOVERY®(カートリカバリー)」ご利用事例 -

タグ: 1stPartyデータ, AI学習設計, GA4, GMP, Google広告, LTV最大化, ウェビナー開催, コラム, データ活用, 広告運用改善
広告成果の「頭打ち」を打破する!GA/GMPを活用したAI学習設計と運用戦略 -

タグ: AI Agents, AI分析, Amplitude Tokyo Meetup, PDCA改善, イベントレポート, グロース戦略, コラム, データドリブン, データ活用, プロダクト分析
【イベントレポート】プロダクトの意志をデータとAIで実装する 〜現場が自走するプロダクトアナリティクスの新時代〜 -

タグ: BigQuery連携, GA4, Looker Studio, コラム, ダッシュボード設計, データ分析効率化, データ活用, マーケティング分析, レポート自動化, 分析工数削減
2025年度 お客様満足度調査 結果のご報告 – Google アナリティクス 360等データ活用支援サービス -

タグ: AEO, AI Visibility, AI検索, Amplitude, コラム, データ分析, ブランド可視化, プロダクト分析, マーケティング分析
SEOの次はAEO?AI検索時代の新戦略②「AIビジビリティ」でブランドの視認性を解き明かす -

タグ: GA4, GA4導入, GTM, Udemy講座, googleタグマネージャー, アクセス解析, オンライン学習, コラム, データ活用, 計測設定
今なら1,500円!GA4×GTM徹底解説 GA4導入講座をUdemyで公開!

