14
Capistrano 紹介 kawasaki.rb #002 2013/07/24 @yumu19

Capistrano紹介 at kawasaki.rb #002 #kwskrb

Embed Size (px)

DESCRIPTION

2013/07/24に開催された第2回 kawasaki.rb の LT で発表した 「Capistrano紹介」の資料

Citation preview

Page 1: Capistrano紹介 at kawasaki.rb #002 #kwskrb

Capistrano 紹介kawasaki.rb #002

2013/07/24

@yumu19

Page 2: Capistrano紹介 at kawasaki.rb #002 #kwskrb

自己紹介•湯村 翼 / @yumu19

• 8月から個人事業主

• Koozyt, Inc. 勤務

• iOSとか、AWSとか、Androidとか、Ruby on Railsとか

•フルスタックエンジニア 何でも屋

• chezou の同期

Page 3: Capistrano紹介 at kawasaki.rb #002 #kwskrb

Capistranoとは

Page 4: Capistrano紹介 at kawasaki.rb #002 #kwskrb

Ruby 製のデプロイツール

Page 5: Capistrano紹介 at kawasaki.rb #002 #kwskrb

デプロイツールとは

Page 6: Capistrano紹介 at kawasaki.rb #002 #kwskrb

(主に)サーバアプリケーショのデプロイを自動化・簡素化してくれるツール

$ scp -r aaa/ remote.com:/bbb

$ git pull origin master

操作ミス((((;゚Д゚))))ガクガクブルブル

設定ファイルは(゚Д゚)?

Page 7: Capistrano紹介 at kawasaki.rb #002 #kwskrb

• Pull 型

•デプロイ環境にインストール

• Push 型

•開発環境にインストール

•デプロイ環境にはsshだけできればよい

Capistrano

Page 9: Capistrano紹介 at kawasaki.rb #002 #kwskrb

Capistrano導入

Page 10: Capistrano紹介 at kawasaki.rb #002 #kwskrb

$ gem install capistrano

$ capify .[add] writing './Capfile'[add] making directory './config'[add] writing './config/deploy.rb'[done] capified!

準備

Page 11: Capistrano紹介 at kawasaki.rb #002 #kwskrb

require “capistrano/ext/multistage”require “capistrano_colors”require “railsless-deploy”require “rubygems”

set :application, “cake2_sample”

set :scm, :gitset :repository, “[email protected]:ryuzee/cake2_sample.git”set :branch, “master”

set :deploy_to, “/usr/local/webapp/cake2_sample”set :deploy_via, :copyset :use_sudo, true

after “deploy”, “change_permission”after “deploy”, “git_submodule_update”after “deploy”, “migrate”

desc “アプリケーションの動作に必要なパーミッションの設定をします”

task :change_permission, roles => :web do run <<-CMD chmod -R 777 #{deploy_to}/current/app/tmp CMDend

desc “外部モジュールを取得します”

task :git_submodule_update, roles => :web do run <<-CMD cd #{deploy_to}/current && git submodule init && git submodule update CMDend

desc “データベースのマイグレーションを実行します”

task :migrate, roles => :web do run <<-CMD cd #{deploy_to}/current/app && Console/cake Migrations.migration run all -p Migrations && Console/cake Migrations.migration run all CMDend

http://www.ryuzee.com/contents/blog/6119

deploy.rb

Page 12: Capistrano紹介 at kawasaki.rb #002 #kwskrb

デプロイ

$ cap production deploy:setup

$ cap production deploy

簡単!ヽ(=́▽`=)ノ

Page 13: Capistrano紹介 at kawasaki.rb #002 #kwskrb

まとめ

Page 14: Capistrano紹介 at kawasaki.rb #002 #kwskrb

参考ウェブサイト• capistrano - GitHub | https://github.com/capistrano/capistrano

• Fukuoka.php vol.6でCapistranoについて話しました - Copy/Cut/Paste/Hatena | http://k1low.hatenablog.com/entry/2013/03/04/191207

• CakePHP2アプリケーションをCapistranoでデプロイする | Ryuzee.com | http://www.ryuzee.com/contents/blog/6119

• Ruby初心者のCapistranoデプロイ入門 | 開発メモるアル | http://shusatoo.net/programming/ruby/ruby-beginner-capistrano-deploy/