Endlich Capistrano

Nach einem Jahr mit Ruby on Rails habe ich nun angefangen Capistrano zu benutzen. Das dies so lange gedauert hat, lag daran das die bisherigen Anwendungen unter Windows liefen.

Mit einem *nix Applikationsserver sollte man natürlich ohne Frage Capistrano nutzen, was das Ausrollen deutlich komfortabler und schneller macht.

Die folgende Konfigurationsdatei checkt die Anwendung aus einem Subversion Repository lokal aus und kopiert die Dateien zum Applikationsserver. Es wird weiterhin vorrausgesetzt, daß das Apache Modul Passenger auf dem Applikationsserver verwendet wird.

Möglichkeiten

  • Checkt Sourcecode aus Repositories aus
  • Kann Webserver neu starten (wird bei Passenger nicht benötigt)
  • Migriert Datenbanken
  • Alte Versionen werden gesichert und es kann ein Rollback gemacht werden
  • Es können unterschiedliche Applikations und Datenbankserver verwendet werden

Vorgehensweise

Installation

sudo gem install capistrano

Im Verzeichnis der Rails Anwendung: capify .

Konfigurationsdatei

config/deploy.rb:

Annahmen: Subversion, installation über Kopieren (scp) auf den Applikationsserver, Apache mit Passenger als Applikationsserver

—————————————————————————————

#############################################################
# Application
#############################################################

set :application, “ApplicationX”
set :deploy_to, “/var/www/#{application}”

#############################################################
# Settings
#############################################################

set :user_sudo, false

#############################################################
# Subversion
#############################################################

set :repository, “https://<pfad zum Repository>/trunk”
set :svn_username, ‘<benutzername>’
set :svn_password, ‘<passwort>”

#############################################################
# Servers
#############################################################

set :host, “<Adresse des Zielrechners>”
role :web, host
role :app, host
role :db, host, :primary => true

set :deploy_via, :copy # checkt lokal aus und kopiert die Daten
set :via, :scp

set :user, ‘<benutzername>’ # ssh benutzername
set :runner, ‘<ausführender benutzer>’

#############################################################
# Passenger
#############################################################

namespace :deploy do
desc “Restart Application”
task :restart do
run “touch #{current_path}/tmp/restart.txt”
end
desc “Start Application — not needed for Passenger”
task :start, :roles => :app do
# nothing — need to override default cap start task when using Passenger
end
end

—————————————————————————————

Capistrano Tasks

Prüfen ob Einstellungen richtig sind: cap deploy:check
Erstellen der Verzeichnisse auf dem Server: cap deploy:setup
Erstes Ausrollen: cap deploy:cold
Ausrollen: cap deploy
Datenbank Migration: cap deploy:migrations
Rollback: cap deploy:rollback

Bücher

Professionelle Webentwicklung mit Ruby on Rails 2 – ab Seite 489
Deploying Rails Applications – ab Seite 85

Dieser Beitrag wurde unter Allgemein abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.
blog comments powered by Disqus