Deployment mit Webistrano

3,335 views
3,164 views

Published on

Vortrag am 2. April 2009 bei Münchner Ruby on Rails User Group (http://www.munich-on-rails.com)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,335
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Deployment mit Webistrano

  1. 1. begin Webistrano.new ... Deployment von Rails-Anwendungen mit Webistrano Daniel Mattes, 2. April 2009
  2. 2. Über mich Daniel Mattes Angestellter bei der BurdaWireless GmbH Arbeitet seit 2007 mit Rails email: dm@actsasblog.de http://www.xing.com/profile/Daniel_Mattes2 http://www.actsasblog.de 02.04.2009 Webistrano 2
  3. 3. Agenda Deploy ohne Hilfsmittel Deploy mit Capistrano = Grundlage von Webistrano Installation, Konfiguration, Befehle und Ablauf Deploy mit Webistrano Überblick, Installation, Konfiguration Live-Beispiel Plugin: Webistrano Privileges 02.04.2009 Webistrano 3
  4. 4. Problemstellung 02.04.2009 Webistrano 4
  5. 5. Deploy ohne Hilfsmittel Beispiel Verbinde per SSH auf Server SVN Update Anpassungen durchführen Neustart des Webservers Probleme Rollback? Manuelles Ausführen von wiederkehrenden Tasks (z. B. rake makemo,…) Aufwendig & Fehleranfällig 02.04.2009 Webistrano 5
  6. 6. Capistrano - Überblick Gem zur Durchführung von automatisierten Deploys Installation gem install capistrano capify . Konfiguration in config/deploy.rb Variablen (Server, Repository,…) Roles (App, Web, DB) Tasks, Namespaces 02.04.2009 Webistrano 6
  7. 7. Capistrano - Konfiguration Variablen set :application, quot;foobarquot; set :deploy_to, quot;/www/foobar-cap/quot; set :deploy_via, :checkout set :keep_releases, quot;10quot; set :password, quot;apfelbaumquot; set :rails_env, quot;productionquot; set :repository, quot;svn+ssh://subversion/foobar/#{repo_path}quot; set :runner, quot;deployquot; set :scm, quot;subversionquot; set :scm_username, quot;deployquot; set :use_sudo, true set :user, quot;deployquot; 02.04.2009 Webistrano 7
  8. 8. Capistrano - Konfiguration Roles role :app, quot;live-server.bw.comquot; role :db, quot;database-server.bw.comquot;, {:no_release=>true, :primary=>true} role :web, quot;live-server.bw.comquot; Tasks, Namespaces namespace :deploy do task :after_update_code, :roles => :app do run quot;cd #{current_release}; rake makemoquot; cleanup() end end 02.04.2009 Webistrano 8
  9. 9. Capistrano - Verzeichnisstruktur Bei jedem Deploy ein neues Verzeichnis mit aktuelle Zeitstempel Logfiles, Pids,… Zeigt auf aktuelles Release 02.04.2009 Webistrano 9
  10. 10. Capistrano - Befehle Initial Deploy cap deploy:setup cap deploy:check http://www.capify.org/getting-started/from-the- beginning/ Nicht mehr empfohlen: cap deploy:cold Durchführen eines Deploys cap deploy 02.04.2009 Webistrano 10
  11. 11. Capistrano - Befehle Deploy mit Migration cap deploy:migrate Panik!!! Rollback cap deploy:rollback Anzeige aller Tasks cap -T 02.04.2009 Webistrano 11
  12. 12. Webistrano Webanwendung zur Durchführung von Capistrano Deploys Entwickelt von Verwaltung von Jonathan Weiss Projekten und Stages (Peritor GmbH) Hosts Recipes (Tasks) Users http://labs.peritor.com/webistrano 02.04.2009 Webistrano 12
  13. 13. Webistrano - Vorteile Übersichtliche Verwaltung von mehreren Projekten und unterschiedlichen Stages (z. B. Live-Server, Test-Server,…) Alle Möglichkeiten wie mit Capistrano, wie z. B. die Änderung und Einbindung von Tasks Userverwaltung E-Mail Benachrichtigung bei durchgeführtem Deploy Verlauf 02.04.2009 Webistrano 13
  14. 14. Webistrano - Installation Anforderungen Ruby >= 1.8.4 Rake SQL-Datenbank Restliche Komponenten im Projekt enthalten http://github.com/peritor/webistrano/tree/master git clone git://github.com/peritor/webistrano.git Konfiguration config/webistrano_config.rb database.yml 02.04.2009 Webistrano 14
  15. 15. Webistrano - Konfiguration WebistranoConfig = { # secret password for session HMAC :session_secret => '7asdfasdf4d78c2d555c5430809bc7ccc00de193a763e2c28b2ae0cbbd9a7b 7f4c', # SMTP settings for outgoing email :smtp_delivery_method => :sendmail, :smtp_settings => { :domain => quot;example.comquot;, :user_name => quot;usernamequot;, :password => quot;passwdquot;, :authentication => :login }, # Sender address for Webistrano emails :webistrano_sender_address => quot;webistrano@bw.comquot;, # Sender and recipient for Webistrano exceptions :exception_recipients => quot;webistrano@bw.comquot;, :exception_sender_address => quot;webistrano@bw.comquot; } 02.04.2009 Webistrano 15
  16. 16. Webistrano – Live-Beispiel 02.04.2009 Webistrano 16
  17. 17. Erweiterung / Privilegien Plugin zur Rechteverwaltung von Webistrano Projekten ruby script/plugin install git://github.com/haitham/webistrano_privile ges ruby script/generate privileges_extensions 02.04.2009 Webistrano 17
  18. 18. Quellen http://www.capify.org/ http://labs.peritor.com/webistrano http://www.slideshare.net/jweiss/deploying -and-monitoring-rails-presentation http://github.com/haitham/webistrano_privil eges 02.04.2009 Webistrano 18
  19. 19. ... rescue TimeLimitExceeded puts quot;...habe fertig!quot; puts quot;danke ;-)quot; end 02.04.2009 Webistrano 19

×