Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
TOYOSYSTEM




Capistranoでデプロイの自動化
TOYOSYSTEM


Capistranoとは
 ●Ruby on Railsの本番環境への設置などが自動化できるツール
 ●実体は”複数のサーバに同じコマンドを送信できる”ツール
TOYOSYSTEM


      アジャイルプラクティス
       第4章 15節 早いうちにデプロイを自動化する


「製品のインストールなんて手動で良いって。しかもそれってQA向け
なんだろ。頻繁にやる作業でもなんだし、ファイルを全...
TOYOSYSTEM


手動のRailsデプロイ
●現在のデータのバックアップ
●設定ファイルなどの退避


●ファイルのコピー


●ファイルやディレクトリの属性変更


●サーバの再起動


(しかもこれはサーバが一台の場合)

デメリッ...
TOYOSYSTEM


Capistranoを使ったデプロイ
●コマンドを一つ叩くだけ
●前のバージョンに戻すのもコマンドを1つ叩くだけ




デメリット
●初期設定が必要(Railsなら簡単)
TOYOSYSTEM


導入する条件
●ソースコードがSubversionなどでバージョン管理システムで管理され
ている
●デプロイ先にSSHでログインができる


●デプロイ先でバージョン管理システムのクライアントソフトが使える


●Ca...
TOYOSYSTEM


導入方法
$gem install capistrano

Railsアプリケーション用の設定ファイルを生成
$ capify .   # <= アプリケーションのルートディレクトリ

すると./Capfileと./c...
TOYOSYSTEM


deploy.rbの例
set :application, 'joglog'
set :deploy_to, "/home/#{application}"

set :runner, 'joglog'
set :use...
TOYOSYSTEM


デプロイ方法
(1)デプロイ先にディレクトリを作成(初回のみ)
$ cap deploy:setup

(2)デプロイを実行
$ cap deploy

(3)DBのmigrationを実行
$ cap deploy:...
TOYOSYSTEM


そのほかのcapコマンド
以前の状態に戻す
$ cap deploy:rollback

以前の状態のソースコードを削除
$ cap deploy:cleanup
TOYOSYSTEM


cap setupで作られるディレクトリ構成
 [deploy_to]
 [deploy_to]/releases
 [deploy_to]/releases/20080819001122
 [deploy_to]/r...
TOYOSYSTEM


まとめ
●アプリケーションのデプロイを自動化しよう
●自動化することでミスをなくす


●だれでもいつでもデプロイできるようになる


●自信をもってデプロイができるようになる


●細かいアップデートができるようになる
Nächste SlideShare
Wird geladen in …5
×

Capistranoで自動デプロイ

第7回Ruby東海勉強会の発表資料

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen
  • Als Erste(r) kommentieren

Capistranoで自動デプロイ

  1. 1. TOYOSYSTEM Capistranoでデプロイの自動化
  2. 2. TOYOSYSTEM Capistranoとは ●Ruby on Railsの本番環境への設置などが自動化できるツール ●実体は”複数のサーバに同じコマンドを送信できる”ツール
  3. 3. TOYOSYSTEM アジャイルプラクティス 第4章 15節 早いうちにデプロイを自動化する 「製品のインストールなんて手動で良いって。しかもそれってQA向け なんだろ。頻繁にやる作業でもなんだし、ファイルを全部コピーするな んて、いかにもQAが得意そうな分野じゃないか。 P64 悪魔の囁き 最初からアプリケーションのデプロイを自動化しましょう 自動化されたデプロイの仕組みを用意して、さまざまな構成のマシンへ アプリケーションをインストールし、アプリケーションの依存関係をテ ストしなさい。QAはアプリケーションだけでなくデプロイもテスト対 称にするのです。 P65 天使の囁き
  4. 4. TOYOSYSTEM 手動のRailsデプロイ ●現在のデータのバックアップ ●設定ファイルなどの退避 ●ファイルのコピー ●ファイルやディレクトリの属性変更 ●サーバの再起動 (しかもこれはサーバが一台の場合) デメリット ●間違えることがある ●1ヶ月経つと忘れる ●前のバージョンに戻すのが大変 ●面倒くさい、不安
  5. 5. TOYOSYSTEM Capistranoを使ったデプロイ ●コマンドを一つ叩くだけ ●前のバージョンに戻すのもコマンドを1つ叩くだけ デメリット ●初期設定が必要(Railsなら簡単)
  6. 6. TOYOSYSTEM 導入する条件 ●ソースコードがSubversionなどでバージョン管理システムで管理され ている ●デプロイ先にSSHでログインができる ●デプロイ先でバージョン管理システムのクライアントソフトが使える ●Capistranoはコマンドを実行するだけのものなので、Capistrano自体 はCapistranoを起動するマシンにだけインストールされていればよい
  7. 7. TOYOSYSTEM 導入方法 $gem install capistrano Railsアプリケーション用の設定ファイルを生成 $ capify . # <= アプリケーションのルートディレクトリ すると./Capfileと./config/deploy.rbというファイルができるので congig/deploy.rbを編集して ・アプリケーション名 ・リポジトリアドレス ・アプリケーションのデプロイ先 などを指定する
  8. 8. TOYOSYSTEM deploy.rbの例 set :application, 'joglog' set :deploy_to, "/home/#{application}" set :runner, 'joglog' set :use_sudo, false set :user do Capistrano::CLI.ui.ask('SSH User: ') end set :password do Capistrano::CLI.password_prompt('SSH Password: ') end #ssh_options[:verbose] = :debug role :app, '192.168.24.111' role :web, '192.168.24.111' role :db, '192.168.24.111', :primary => true set :scm_user do Capistrano::CLI.ui.ask('SVN User: ') end set :scm_password do Capistrano::CLI.password_prompt('SVN Password: ') end set :repository_uri, 'http://192.168.24.109/svn/joglog/trunk' set :repository do "--username #{scm_user} --password #{scm_password} --no-auth-cache #{repository_uri}" end
  9. 9. TOYOSYSTEM デプロイ方法 (1)デプロイ先にディレクトリを作成(初回のみ) $ cap deploy:setup (2)デプロイを実行 $ cap deploy (3)DBのmigrationを実行 $ cap deploy:migrate
  10. 10. TOYOSYSTEM そのほかのcapコマンド 以前の状態に戻す $ cap deploy:rollback 以前の状態のソースコードを削除 $ cap deploy:cleanup
  11. 11. TOYOSYSTEM cap setupで作られるディレクトリ構成 [deploy_to] [deploy_to]/releases [deploy_to]/releases/20080819001122 [deploy_to]/releases/... [deploy_to]/shared [deploy_to]/shared/log [deploy_to]/shared/pids [deploy_to]/shared/system [deploy_to]/current -> [deploy_to]/releases/20080819001122 http://www.capify.org/index.php/From_The_Beginning releasesにソースを入れていき、currentからのシンボリックリンクを付 け替えることでロールバックを実現している。 (サーバのドキュメントルートは/current/publicにしておく)
  12. 12. TOYOSYSTEM まとめ ●アプリケーションのデプロイを自動化しよう ●自動化することでミスをなくす ●だれでもいつでもデプロイできるようになる ●自信をもってデプロイができるようになる ●細かいアップデートができるようになる

×