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
-
タグ: Cloud Shell構築, GA4, GA分析自動化, Gemini CLI, Google アナリティクスMCP, LLM連携, コラム, データ対話型分析, モデルコンテキストプロトコル, 自然言語分析
2025年7月発表!自然言語でGA4を分析できる「Google アナリティクスMCPサーバー」を構築する方法 -
タグ: AIエージェント, GA360, Gemini in Looker, Google Cloud Next, Next Tokyo, Vertex AI Search, イベントレポート, コラム, データ分析高度化, データ利活用, 検索体験向上, 生成AI活用
【Next Tokyoレポート】主役は生成AI!GA360×生成AIの最新活用法を紹介 -
タグ: ASEAN展開, Direct Engine, インドネシア, オフショア開発, グローバル協業, コラム, ジャカルタ, スラバヤ, ビジネス熱気, ファンデザイン室, 出張レポート, 文化共存
【出張レポート】インドネシアで見た、熱気と未来への可能性|株式会社イー・エージェンシー公式note -
タグ: AI実証実験, AI高速処理, ECサイトパーソナライズ, Groq API, HTML自動生成, UX最適化, Web制作, コラム, リアルタイムAIパーソナライズ, 技術進化
【ウェブ制作】AIを使ってウェブサイトをリアルタイムにパーソナライズしてみたい!|株式会社イー・エージェンシー公式note -
タグ: GA4トレーニング, GA4初心者, Udemy講座, gmpプレミアムサロン, アクセス解析学習, コラム, スマホ学習, データ活用, 探索レポート, 解析スキルアップ
プロに学ぶ、夏のGA4スキルアップ。アクセス解析の基本講座が1,500円【8/31まで】 -
タグ: AIと人の協業, AI活用事例, Google Gemini, gemini, カスタム議事録, コラム, プロンプト設計, 会議効率化, 文字起こし, 業務効率化, 議事録効率化
【もう議事録は書かない】Geminiを使って、文字起こしからカスタム議事録を作成|株式会社イー・エージェンシー公式note