Your SlideShare is downloading. ×
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Capistrano
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Capistrano

1,356

Published on

勉強会で使ったやつ

勉強会で使ったやつ

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,356
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Capistrano勉強会
  • 2. デプロイってどうやると 思いますか?
  • 3. デプロイに求められる要件は?
  • 4. ● いろんなホストへデプロイできる● リリース物件のバージョン管理● sshで接続● gitやsubversionとの連携● root権限のコマンドも使える などなど● windows
  • 5. Capistrano
  • 6. Capistranoのサーバ構成 push式 2.gzip圧縮 set :deploy_via, :copy を 設定するとpushデプロイになるよ クライアントPC 1.チェックアウト おそらく、:remote_cacheも capistrano 3.scp アプリケーション アプリケーション ソースコードリポジトリ github4.展開 Webサーバ アプリケーションサーバ
  • 7. Capistranoのファイル構成
  • 8. deploy流れソースコードdeploy update update_code strategy.deploy! (REVISIONはここでできる) finalize_update create_symlink restart
  • 9. その他のtaskdeploy:setup releases, sharedディレクトリを作成 $ cap HOSTS=new.server.com deploy:setupdeploy:upload デプロイ先にファイルをアップロード $ cap deploy:upload FILES=config/apache/*.confshell、 cleanup、 migrate、 invoke とかもある
  • 10. bundle installrequire bundler/capistranoをやると自動的にfinalize_updateの後に実行してくれるソースコードbundlerに組み込まれた機能
  • 11. 設定roleメソッドで指定 role :app, host1, host2, host3set メソッドで指定 set :application, "app1" 属性 必須 デフォルト値 例 :application ○ - app1 :repository ○ - git@github.com・・・・ :scm - :subversion :git :deploy_via - :co :remote_cache 説明 :ssh_options - ? {:user => "deploy", :key => ["~/. ssh/id_rsa"]} :deploy_to - /u/apps/#{application} :branch - ? develop :revision - - 195a9da5fafca8d8f43e27bddf488 7c8645245a2 ※設定した場合、branchが無視される
  • 12. task登録①taskを自分で作ることもできるnamespace :deploy do task :start do; end task :stop do; end task :restart, :roles => :app do run "touch #{File.join(current_path,tmp,restart.txt)}" end task :update_database_settings do run "ln -sf #{shared_path}/config/settings.yml #{latest_release}/config/" run "ln -sf #{shared_path}/config/database.yml #{latest_release}/config/" endend
  • 13. task登録②● run ○ シェルコマンドを実行 ■ run "echo hoge"● sudo ○ run をsudo権限で実行● put ○ サーバにファイルをアップロード● delete ○ サーバ上のファイル削除● on_rollback ○ ロールバック時に呼び出される
  • 14. コールバック各タスクの実行前後に別のタスクを登録できるbefore deploy:finalize_update, deploy:update_database_settings
  • 15. windows● FreeSSHdをつかって無理やりsshで接続可能 にしている● シンボリックリンクが貼れないため、その部分が コピー● remote_cacheが効かない
  • 16. 終わりに● いろんなホストへデプロイできる ⇒ ○● リリース物件のバージョン管理 ⇒ ○● sshで接続      ⇒ ○● gitやsubversionとの連携 ⇒ ○● root権限のコマンドも使える ⇒ ○  などなど● windows ⇒ △

×