Capistrano
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&tag(Capistrano);
*目次 [#j8aad278]
#contents
*関連ページ [#xc2eea32]
-[[Rails]]
-[[Rails3]]
-[[Capistrano3]]
*参考情報 [#j24c1780]
-書籍: パーフェクトRuby
*概要 [#ge3a936b]
-以下Capistrano 2に関する情報
-最新は[[Capistrano3]]を参照のこと。
*インストール [#i4eb383d]
-gemでインストール
gem install capistrano capistrano_colors
*デプロイ用の設定ファイルの作成 [#v883c334]
-自分のRailsアプリのフォルダに移動しcapifyコマンドを実行...
cd ~/myapp
capify .
-config/deploy.rbというファイルが作成される。
*設定ファイルの編集 [#v03db165]
-config/deploy.rbを編集。以下のようなテンプレートが書きだ...
#pre{{
set :application, "set your application name here"
set :repository, "set your repository location here"
# set :scm, :git # You can set :scm explicitly or Capistr...
n known version control directory names
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial...
role :web, "your web-server here" ...
role :app, "your app-server here" ...
ver
role :db, "your primary db-server here", :primary => tru...
n
role :db, "your slave db-server here"
}}
**lsタスクの作成 [#s15ac9e4]
-[[Capistranoを使ったデプロイ | アライドアーキテクツ エン...
-deploy.rbを編集
#pre{{
# sshのユーザー名
set :user, "demouser"
# ssh公開鍵設定
set :ssh_options, :port=>11111 :forward_agent=>false, :ke...
# sudoするかどうか(sudoしないほうが普通らしい)
set :use_sudo, false
# デプロイサーバ定義
role :web, "demohost"
# lsコマンド実行タスク
task :list do
run "ls"
end
}}
-以下のコマンドで実行。
cap list
-rubyのNet::SSHというライブラリを使い、ssh経由でログイン...
**デプロイ実行 [#ie76c58d]
-deploy.rbに設定を追加する
#pre{{
set :user, "demouser"
# ssh公開鍵設定
set :ssh_options, :port=>11111 :forward_agent=>false, :ke...
# sudoするかどうか(sudoしないほうが普通らしい)
set :use_sudo, false
# アプリケーション名
set :application, "demoapp"
# scmの指定
set :scm ,:git
# gitリポジトリ
set :repository, "git@gitserver:demoapp.git"
# gitブランチ名
set :branch, :master
# デプロイ方式。:copyの場合手元でソースを最新にしてからコ...
# :checkoutの場合サーバー上でgitリポジトリに接続して更新...
set :deploy_via , :copy
# deploy先ディレクトリ(サーバーのディレクトリ)
set :deploy_to, "/var/www/html/demo"
# デプロイサーバ定義
role :web, "demohost"
# lsコマンド実行タスク
task :list do
run "ls"
end
}}
-デプロイ実行の準備(初回やデプロイ先がかわるなどのごとに...
cap deploy:setup
-デプロイ実行
cap deploy
-サーバー上にファイルがあるかどうか確認する。
***デプロイ先がPassengerの場合 [#t0b3b2d8]
-deploy.rbの下のほうのコメントアウトされている部分を有効...
#pre{{
# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_releas...
run "#{try_sudo} touch #{File.join(current_path,'tmp...
en
}}
***デプロイ先でrbenv+bundlerを使っている場合 [#xbf97da0]
-bundlerを使っている場合、bundler/capistranoを、rbenvを使...
#pre{{
require "bundler/capistrano"
require "capistrano-rbenv"
set :rbenv_ruby_version, "1.9.3-p429"
}}
-デプロイ先でbundlerを実行するので、Gemfile.lockをバージ...
*Tips [#o228eb8e]
**複数環境にdeployする場合の設定 [#b7d776f9]
-[[Capistrano で簡単に複数サイトへのデプロイを行えるよう...
**複数の設定ファイルを使う方法 [#qafbc98d]
-標準ではconf/deploy以下にproduction.rbとstaging.rbが作ら...
-この場合単にconf/deploy以下に*.rbファイルを作成すればよ...
conf/deploy/vps.rb
-以下のように一向するとvps.rbが使用される
bundle exec cap vps deploy
*トラブルシューティング [#hd3059f6]
**Capistrano 2でNet::SSH::AuthenticationFailedがエラー。 ...
-[[CapistranoでSSHのパスワード入力プロンプトが出ずにNet::...
#pre{{
gem "net-ssh", "2.7.0"
}}
**インストール先のanyevn経由のrbenvが見つからない [#xa189...
-例えば以下のようなエラーが発生する。
#pre{{
00:00 rbenv:validate
WARN rbenv: 2.6.3 is not installed or not found in...
}}
-以下のようにシンボリックリンクを張れば解決?
ln -s .anyenv/envs/rbenv .rbenv
終了行:
&tag(Capistrano);
*目次 [#j8aad278]
#contents
*関連ページ [#xc2eea32]
-[[Rails]]
-[[Rails3]]
-[[Capistrano3]]
*参考情報 [#j24c1780]
-書籍: パーフェクトRuby
*概要 [#ge3a936b]
-以下Capistrano 2に関する情報
-最新は[[Capistrano3]]を参照のこと。
*インストール [#i4eb383d]
-gemでインストール
gem install capistrano capistrano_colors
*デプロイ用の設定ファイルの作成 [#v883c334]
-自分のRailsアプリのフォルダに移動しcapifyコマンドを実行...
cd ~/myapp
capify .
-config/deploy.rbというファイルが作成される。
*設定ファイルの編集 [#v03db165]
-config/deploy.rbを編集。以下のようなテンプレートが書きだ...
#pre{{
set :application, "set your application name here"
set :repository, "set your repository location here"
# set :scm, :git # You can set :scm explicitly or Capistr...
n known version control directory names
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial...
role :web, "your web-server here" ...
role :app, "your app-server here" ...
ver
role :db, "your primary db-server here", :primary => tru...
n
role :db, "your slave db-server here"
}}
**lsタスクの作成 [#s15ac9e4]
-[[Capistranoを使ったデプロイ | アライドアーキテクツ エン...
-deploy.rbを編集
#pre{{
# sshのユーザー名
set :user, "demouser"
# ssh公開鍵設定
set :ssh_options, :port=>11111 :forward_agent=>false, :ke...
# sudoするかどうか(sudoしないほうが普通らしい)
set :use_sudo, false
# デプロイサーバ定義
role :web, "demohost"
# lsコマンド実行タスク
task :list do
run "ls"
end
}}
-以下のコマンドで実行。
cap list
-rubyのNet::SSHというライブラリを使い、ssh経由でログイン...
**デプロイ実行 [#ie76c58d]
-deploy.rbに設定を追加する
#pre{{
set :user, "demouser"
# ssh公開鍵設定
set :ssh_options, :port=>11111 :forward_agent=>false, :ke...
# sudoするかどうか(sudoしないほうが普通らしい)
set :use_sudo, false
# アプリケーション名
set :application, "demoapp"
# scmの指定
set :scm ,:git
# gitリポジトリ
set :repository, "git@gitserver:demoapp.git"
# gitブランチ名
set :branch, :master
# デプロイ方式。:copyの場合手元でソースを最新にしてからコ...
# :checkoutの場合サーバー上でgitリポジトリに接続して更新...
set :deploy_via , :copy
# deploy先ディレクトリ(サーバーのディレクトリ)
set :deploy_to, "/var/www/html/demo"
# デプロイサーバ定義
role :web, "demohost"
# lsコマンド実行タスク
task :list do
run "ls"
end
}}
-デプロイ実行の準備(初回やデプロイ先がかわるなどのごとに...
cap deploy:setup
-デプロイ実行
cap deploy
-サーバー上にファイルがあるかどうか確認する。
***デプロイ先がPassengerの場合 [#t0b3b2d8]
-deploy.rbの下のほうのコメントアウトされている部分を有効...
#pre{{
# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_releas...
run "#{try_sudo} touch #{File.join(current_path,'tmp...
en
}}
***デプロイ先でrbenv+bundlerを使っている場合 [#xbf97da0]
-bundlerを使っている場合、bundler/capistranoを、rbenvを使...
#pre{{
require "bundler/capistrano"
require "capistrano-rbenv"
set :rbenv_ruby_version, "1.9.3-p429"
}}
-デプロイ先でbundlerを実行するので、Gemfile.lockをバージ...
*Tips [#o228eb8e]
**複数環境にdeployする場合の設定 [#b7d776f9]
-[[Capistrano で簡単に複数サイトへのデプロイを行えるよう...
**複数の設定ファイルを使う方法 [#qafbc98d]
-標準ではconf/deploy以下にproduction.rbとstaging.rbが作ら...
-この場合単にconf/deploy以下に*.rbファイルを作成すればよ...
conf/deploy/vps.rb
-以下のように一向するとvps.rbが使用される
bundle exec cap vps deploy
*トラブルシューティング [#hd3059f6]
**Capistrano 2でNet::SSH::AuthenticationFailedがエラー。 ...
-[[CapistranoでSSHのパスワード入力プロンプトが出ずにNet::...
#pre{{
gem "net-ssh", "2.7.0"
}}
**インストール先のanyevn経由のrbenvが見つからない [#xa189...
-例えば以下のようなエラーが発生する。
#pre{{
00:00 rbenv:validate
WARN rbenv: 2.6.3 is not installed or not found in...
}}
-以下のようにシンボリックリンクを張れば解決?
ln -s .anyenv/envs/rbenv .rbenv
ページ名: