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
-
タグ: ECサイト, キャンペーン, コラム, ニュース, レコメンドエンジン
ECサイトの「カゴ落ち率」はどれくらい?GA4で簡単にカゴ落ち率を確認する方法 -
タグ: GA360, GMP, Googleアナリティクス, Googleマーケティングプラットフォーム, googlecloud, looker, コラム, データ分析, マーケティング支援, 有料版GA
【資料】Googleアナリティクス360のご案内 -
タグ: GA4, GTM, Googleアナリティクス, コラム, コンバージョントラッキング, タグマネージャー, データ分析, データ検証, プレビューモード, 計測設定
タグが発火しない?レイアウトが崩れる!GA4の設定を検証する方法 | 公開後に後悔しない!GA4設定・検証ガイド【シリーズ第3弾】 -
タグ: GA4, GTM, Googleアナリティクス, コラム, コンバージョントラッキング, タグマネージャー, データ分析, データ検証, プレビューモード, 計測設定
検証に不可欠!GTMのプレビューモードで検証を強化する方法 | 公開後に後悔しない!GA4設定・検証ガイド【シリーズ第2弾】 -
タグ: GA4, GTM, Googleアナリティクス, コラム, コンバージョントラッキング, タグマネージャー, データ分析, データ検証, プレビューモード, 計測設定
検証が大事!設定ミスが引き起こす影響と対策 | 公開後に後悔しない!GA4設定・検証ガイド【シリーズ第1弾】 -
タグ: GA4, GTM, Googleアナリティクス, アクセス解析, コラム, データ検証, プレビューモード, ユーザー行動分析, 計測設定, 設定ガイド
【資料】公開後に後悔しない!GA4設定・検証ガイド