Capistrano3/基本
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[Capistrano3]]
&tag(Capistrano3/基本);
*目次 [#jcea429d]
#contents
*関連ページ [#a11381d7]
-[[Capistrano3]]
*参考情報 [#ed5d69c6]
*基本的な使用方法[#v40b5c7b]
以下bundle経由で使用する方法を説明する。
**V2からの移行 [#bbc60870]
-互換性がないので作りなおさないといけない。
-GemfileをCapistrano3用に変更し、
-Capfile、config/deploy.rbを削除し、
-以下のインストール移行の手順を実行する。
**設定値の違い [#sdbc9dc6]
-:repositoryが:repo_urlに。
-ssh_optionsの指定方法が。
** インストール [#tebcad30]
-Gemfileを編集し以下を追加。基本は"capistrano"だけだが、r...
#pre{{
group :deployment do
gem 'capistrano'
gem 'capistrano-rails'
gem 'capistrano-rbenv'
gem 'capistrano-bundler'
end
}}
-gemのインストール
bundle install --path vendor/bundle
**設定ファイルの作成 [#adc54f37]
-プロジェクトフォルダに移動し、「cap install」を実行
#pre{{
$ cd myproject
$ bundle exec cap install
mkdir -p config/deploy
create config/deploy.rb
create config/deploy/staging.rb
create config/deploy/production.rb
mkdir -p lib/capistrano/tasks
Capified
}}
**設定ファイルの編集 [#d28259dc]
***Capfile [#sb5ee752]
-Capfileでは使用するモジュールをrequireする。他のファイル...
#pre{{
# Load DSL and Setup Up Stages
require 'capistrano/setup'
# Includes default deployment tasks
require 'capistrano/deploy'
# Includes tasks from other gems included in your Gemfile
#
# For documentation on these, see for example:
#
# https://github.com/capistrano/rvm
# https://github.com/capistrano/rbenv
# https://github.com/capistrano/chruby
# https://github.com/capistrano/bundler
# https://github.com/capistrano/rails
#
# require 'capistrano/rvm'
require 'capistrano/rbenv'
# require 'capistrano/chruby'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
# Loads custom tasks from `lib/capistrano/tasks' if you h...
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import...
}}
***config/deploy/staging.rbの編集 [#m5ee541e]
-いきなり本番サーバーにdeployするのは危険性が高い。テスト...
#pre{{
server 'centos6vm', user: 'tanaka', roles: %w{app db web}...
role :app, %w{tanaka@centos6vm}
role :web, %w{tanaka@centos6vm}
role :db, %w{tanaka@centos6vm}
}}
***config/deploy/production.rbの編集 [#s166c17f]
-production環境に関する設定を行う。role、server、ssh_opti...
***config/deploy.rbの編集 [#mb74ff23]
-デプロイに関する共通設定を記述する。以下は後述するcopy_t...
-デプロイだけだとデバッグが大変なのでリモートで"ls"を実行...
#pre{{
set :application, 'demoapp'
set :rbenv_ruby, File.read('.ruby-version').strip
set :scm, :copy
set :tar_roles, :web
set :exclude_dir, ['vendor/bundle']
set :bundle_flags, '--quiet'
task :list do
on roles(:web) do
execute "ls"
end
end
namespace :deploy do
namespace :deploy do
after :restart, :restart_passenger do
on roles(:web), in: :groups, limit: 3, wait: 10 do
within release_path do
execute :touch, 'tmp/restart.txt'
end
end
end
after :finishing, 'deploy:restart_passenger'
end
end
}}
** 使用する [#r43bb852]
**listタスクの実行 [#l2ce8f89]
-サーバー上で"ls"を実行するlistタスクを実行してみる
bundle exec cap staging list
**deployタスクの実行 [#u1750759]
-サーバー上にdeployする
bundle exec cap staging deploy
**マイグレーション実行 [#t2b274c6]
-Capfileを編集し以下を追加する
require 'capistrano/rails/migrations'
-[[Capistrano の db ロール - akishin999の日記:http://d.ha...
-手動で実行する場合以下を呼ぶ
bundle exec cap staging deploy:migrate
**古いリリースの削除 [#i1ccd13e]
-手動で削除する
bundle exec cap deploy:cleanup -s keep_releases=3
-デプロイ後自動で削除する
-deploy.rbに追加
#pre{{
set :keep_releases, 3
after :finishing, 'deploy:restart_passenger', 'deploy:cle...
}}
終了行:
[[Capistrano3]]
&tag(Capistrano3/基本);
*目次 [#jcea429d]
#contents
*関連ページ [#a11381d7]
-[[Capistrano3]]
*参考情報 [#ed5d69c6]
*基本的な使用方法[#v40b5c7b]
以下bundle経由で使用する方法を説明する。
**V2からの移行 [#bbc60870]
-互換性がないので作りなおさないといけない。
-GemfileをCapistrano3用に変更し、
-Capfile、config/deploy.rbを削除し、
-以下のインストール移行の手順を実行する。
**設定値の違い [#sdbc9dc6]
-:repositoryが:repo_urlに。
-ssh_optionsの指定方法が。
** インストール [#tebcad30]
-Gemfileを編集し以下を追加。基本は"capistrano"だけだが、r...
#pre{{
group :deployment do
gem 'capistrano'
gem 'capistrano-rails'
gem 'capistrano-rbenv'
gem 'capistrano-bundler'
end
}}
-gemのインストール
bundle install --path vendor/bundle
**設定ファイルの作成 [#adc54f37]
-プロジェクトフォルダに移動し、「cap install」を実行
#pre{{
$ cd myproject
$ bundle exec cap install
mkdir -p config/deploy
create config/deploy.rb
create config/deploy/staging.rb
create config/deploy/production.rb
mkdir -p lib/capistrano/tasks
Capified
}}
**設定ファイルの編集 [#d28259dc]
***Capfile [#sb5ee752]
-Capfileでは使用するモジュールをrequireする。他のファイル...
#pre{{
# Load DSL and Setup Up Stages
require 'capistrano/setup'
# Includes default deployment tasks
require 'capistrano/deploy'
# Includes tasks from other gems included in your Gemfile
#
# For documentation on these, see for example:
#
# https://github.com/capistrano/rvm
# https://github.com/capistrano/rbenv
# https://github.com/capistrano/chruby
# https://github.com/capistrano/bundler
# https://github.com/capistrano/rails
#
# require 'capistrano/rvm'
require 'capistrano/rbenv'
# require 'capistrano/chruby'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
# Loads custom tasks from `lib/capistrano/tasks' if you h...
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import...
}}
***config/deploy/staging.rbの編集 [#m5ee541e]
-いきなり本番サーバーにdeployするのは危険性が高い。テスト...
#pre{{
server 'centos6vm', user: 'tanaka', roles: %w{app db web}...
role :app, %w{tanaka@centos6vm}
role :web, %w{tanaka@centos6vm}
role :db, %w{tanaka@centos6vm}
}}
***config/deploy/production.rbの編集 [#s166c17f]
-production環境に関する設定を行う。role、server、ssh_opti...
***config/deploy.rbの編集 [#mb74ff23]
-デプロイに関する共通設定を記述する。以下は後述するcopy_t...
-デプロイだけだとデバッグが大変なのでリモートで"ls"を実行...
#pre{{
set :application, 'demoapp'
set :rbenv_ruby, File.read('.ruby-version').strip
set :scm, :copy
set :tar_roles, :web
set :exclude_dir, ['vendor/bundle']
set :bundle_flags, '--quiet'
task :list do
on roles(:web) do
execute "ls"
end
end
namespace :deploy do
namespace :deploy do
after :restart, :restart_passenger do
on roles(:web), in: :groups, limit: 3, wait: 10 do
within release_path do
execute :touch, 'tmp/restart.txt'
end
end
end
after :finishing, 'deploy:restart_passenger'
end
end
}}
** 使用する [#r43bb852]
**listタスクの実行 [#l2ce8f89]
-サーバー上で"ls"を実行するlistタスクを実行してみる
bundle exec cap staging list
**deployタスクの実行 [#u1750759]
-サーバー上にdeployする
bundle exec cap staging deploy
**マイグレーション実行 [#t2b274c6]
-Capfileを編集し以下を追加する
require 'capistrano/rails/migrations'
-[[Capistrano の db ロール - akishin999の日記:http://d.ha...
-手動で実行する場合以下を呼ぶ
bundle exec cap staging deploy:migrate
**古いリリースの削除 [#i1ccd13e]
-手動で削除する
bundle exec cap deploy:cleanup -s keep_releases=3
-デプロイ後自動で削除する
-deploy.rbに追加
#pre{{
set :keep_releases, 3
after :finishing, 'deploy:restart_passenger', 'deploy:cle...
}}
ページ名: