Capistrano勉強会
デプロイってどうやると  思いますか?
デプロイに求められる要件は?
● いろんなホストへデプロイできる● リリース物件のバージョン管理● sshで接続● gitやsubversionとの連携● root権限のコマンドも使える などなど● windows
Capistrano
Capistranoのサーバ構成 push式   2.gzip圧縮                                          set :deploy_via, :copy を                       ...
Capistranoのファイル構成
deploy流れソースコードdeploy  update     update_code        strategy.deploy! (REVISIONはここでできる)        finalize_update     create_s...
その他のtaskdeploy:setup  releases, sharedディレクトリを作成  $ cap HOSTS=new.server.com deploy:setupdeploy:upload  デプロイ先にファイルをアップロード  ...
bundle installrequire bundler/capistranoをやると自動的にfinalize_updateの後に実行してくれるソースコードbundlerに組み込まれた機能
設定roleメソッドで指定  role :app, host1, host2, host3set メソッドで指定  set :application, "app1"    属性             必須   デフォルト値          ...
task登録①taskを自分で作ることもできるnamespace :deploy do task :start do; end task :stop do; end task :restart, :roles => :app do   run ...
task登録②● run  ○ シェルコマンドを実行    ■ run "echo hoge"● sudo  ○ run をsudo権限で実行● put  ○ サーバにファイルをアップロード● delete  ○ サーバ上のファイル削除● on...
コールバック各タスクの実行前後に別のタスクを登録できるbefore deploy:finalize_update, deploy:update_database_settings
windows● FreeSSHdをつかって無理やりsshで接続可能  にしている● シンボリックリンクが貼れないため、その部分が  コピー● remote_cacheが効かない
終わりに● いろんなホストへデプロイできる      ⇒ ○● リリース物件のバージョン管理       ⇒ ○● sshで接続               ⇒ ○● gitやsubversionとの連携   ⇒ ○● root権限のコマンドも...
Upcoming SlideShare
Loading in …5
×

Capistrano

1,755 views

Published on

勉強会で使ったやつ

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

No Downloads
Views
Total views
1,755
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Capistrano

  1. 1. Capistrano勉強会
  2. 2. デプロイってどうやると 思いますか?
  3. 3. デプロイに求められる要件は?
  4. 4. ● いろんなホストへデプロイできる● リリース物件のバージョン管理● sshで接続● gitやsubversionとの連携● root権限のコマンドも使える などなど● windows
  5. 5. Capistrano
  6. 6. Capistranoのサーバ構成 push式 2.gzip圧縮 set :deploy_via, :copy を 設定するとpushデプロイになるよ クライアントPC 1.チェックアウト おそらく、:remote_cacheも capistrano 3.scp アプリケーション アプリケーション ソースコードリポジトリ github4.展開 Webサーバ アプリケーションサーバ
  7. 7. Capistranoのファイル構成
  8. 8. deploy流れソースコードdeploy update update_code strategy.deploy! (REVISIONはここでできる) finalize_update create_symlink restart
  9. 9. その他のtaskdeploy:setup releases, sharedディレクトリを作成 $ cap HOSTS=new.server.com deploy:setupdeploy:upload デプロイ先にファイルをアップロード $ cap deploy:upload FILES=config/apache/*.confshell、 cleanup、 migrate、 invoke とかもある
  10. 10. bundle installrequire bundler/capistranoをやると自動的にfinalize_updateの後に実行してくれるソースコードbundlerに組み込まれた機能
  11. 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. 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. 13. task登録②● run ○ シェルコマンドを実行 ■ run "echo hoge"● sudo ○ run をsudo権限で実行● put ○ サーバにファイルをアップロード● delete ○ サーバ上のファイル削除● on_rollback ○ ロールバック時に呼び出される
  14. 14. コールバック各タスクの実行前後に別のタスクを登録できるbefore deploy:finalize_update, deploy:update_database_settings
  15. 15. windows● FreeSSHdをつかって無理やりsshで接続可能 にしている● シンボリックリンクが貼れないため、その部分が コピー● remote_cacheが効かない
  16. 16. 終わりに● いろんなホストへデプロイできる ⇒ ○● リリース物件のバージョン管理 ⇒ ○● sshで接続      ⇒ ○● gitやsubversionとの連携 ⇒ ○● root権限のコマンドも使える ⇒ ○  などなど● windows ⇒ △

×