deployment mit capistrano und subversion - rails jobsb-simple.de/download/capistrano.pdf ·...

23
Capistrano © 2006, Wirdemann, Baustert 1 Ralf Wirdemann www.b-simple.de Deployment mit Capistrano und Subversion 1

Upload: others

Post on 16-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

1

Ralf Wirdemannwww.b-simple.de

Deployment mit Capistrano und Subversion

1

Page 2: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

2

• Softwareentwicklung • Projektmanagement• Coaching• Beratung• Schulungen• Java/Java EE• Ruby on Rails

www.rapidwebdevelopment.de

2

Page 3: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Überblick: Deployment mit Capistrano• Automatisierung• Deployment• Capistrano als Deployment Tool für Rails• Live-Demo• Capistrano erweitern

3

3

Page 4: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

4

Automatisierung

• Beispiele: Scheduled Builds, Deployment, Monitoring• Werkzeuge: rake, ant, make, Shell-Skripte, cron,

CruiseControl• eine der wichtigsten „Best Practices“• Warum: spart Zeit und vermeidet Fehler• Wann?• Pragmatic Programmer, Pragmatic Project Automation

Mike Clark: „Der Computer führt eine Reihe von Tasks konsistent und wiederholbar aus.“

4

Page 5: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Deployment

• besteht aus einer Vielzahl an Schritten• zeitintensiv• fehleranfällig• langweilig• muss häufig ausgeführt werden

5

Auslieferung und Installation einer neuen Software-Version für deren Endbenutzer.

5

Page 6: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Capistrano• Tool und Framework für das automatisierte Deployment

von Web Anwendungen• Commanded Automation• Automatisierte, parallele Ausführung von Tasks auf

mehreren Servern• Jamis Buck (37signals)• Warum ist Capistrano toll?

– vergessen, wenn konfiguriert– mehr Zeit für wichtige Probleme– keine Fehler, nichts wird vergessen– Deployment ist keine eigenständige Disziplin mehr

6

6

Page 7: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Deploymentumgebung

7

Server n Entwicklung

SVN-Repository

- Ruby, Rails- Rake- SVN-Client- SSH-Server- LightTPD- FastCGI- ruby-fcgi- MySQL

SSH

svnsvn

Server 1

...

- Ruby, Rails- Rake- SVN-Client- SSH-Client

7

Page 8: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Installation• sudo gem install capistrano --include-dependencies• cap --apply-to . thelist

8

config/deploy.rb

8

Page 9: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Deploymentrezept

9

thelist/config/deploy.rb

9

Page 10: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

1. Schritt: Setup

10

releases

thelist

shared

log

pids

cap setup

10

Page 11: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

2. Schritt: Source auschecken

11

releases

thelist

shared

log

pids

20061001103303

cap update_code

11

Page 12: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

3. Schritt: Link setzen

12

cap symlink

releases

thelist

shared

log

...

20061001103303

current

12

Page 13: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Lighttpd und FCGI-Prozesse starten

13

13

Page 14: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Nachfolgende Deployments

14

1. Auschecken

2. Link aktualisieren

releases

thelist20061001103303

current

20061001103803

3. FCGI Neustart

cap deploy

14

Page 15: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Einen Schritt zurück• rake remote:rollback

15

2. Neustes Verzeichnis löschen

1. Link auf Vorgängerverzeichnis

3. FCGI Neustart

releases

thelist20061001103303

current

20061001103803

cap rollback

15

Page 16: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Tasks

16

cap show_tasks

16

Page 17: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Eigene Tasks

17

cap which_ruby

17

Page 18: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Tasks und Variablen

18

cap show_revision

18

Page 19: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Taskketten

19

cap show_status

19

Page 20: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Transaktionen und Rollbacks

20

cap my_deploy

20

Page 21: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Hooks: Before- und After-Tasks

21

cap update_code

21

Page 22: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

Fazit• Pragmatisch Automatisieren• Capistrano auch bei nur einem Server• Egal was kommt:

=> Es bleibt immer nur ein Kommando

22

22

Page 23: Deployment mit Capistrano und Subversion - Rails Jobsb-simple.de/download/capistrano.pdf · Capistrano © 2006, Wirdemann, Baustert Überblick: Deployment mit Capistrano • Automatisierung

Capistrano

© 2006, Wirdemann, Baustert

23

Quellen• http://manuals.rubyonrails.com/read/book/17• Dave Thomas, Andy Hunt:

Pragmatic Programmer• Mike Clark: Project Automation• Rapid Web Development, 2. Auflage

23