Home > howto > Rails Hosting bei Rocket Rentals – auch mit Staging Umgebung

Rails Hosting bei Rocket Rentals – auch mit Staging Umgebung

Mein aktuelles Projekt an dem ich arbeite ist wheelmap.org. Wheelmap.org stellt eine Anwendung für Rollstuhlfahrer bereit, die es ihnen ermöglicht herauszufinden, welche Orte rollstuhlgerecht sind, und welche nicht. So werden Orte aufgezeigt, welche Fahrstühle, abgesenkte Bordsteinkanten oder auch sogenannte Rollstuhllifte anbieten. Wheelmap wird auf den Server von Rocket Rentals gehostet. Die Jungs von Rocket Rentals bieten neben Rails Hosting auch Co-Working Space und professionelle Anwendungsentwicklung.
Da ich hauptsächlich in meinem Büro entwickle, besteht die Notwendigkeit in regelmässigen Abständen meinen Fortschritt zu präsentieren. Und das möglichst auf einem Server im Netz und nicht auf meiner Entwicklungsmaschine. Dafür eignet sich die Live Anwendung allerdings schlecht. Kleinere Fehler oder unvollständige Features möchte man nicht auf den echten Benutzer loslassen. Deswegen habe ich eine Staging Umgebung eingerichtet, die jeweils den aktuellen Entwicklungsstand zeigt. Die Live Umgebung läuft weiterhin nur mit einer stabilen Version. Und so gehts:Als erstes muss in DNS Konfiguration eine Subdomain eingerichtet werden. Das ist von Rocket Rentals unabhängig und sollte durch den DNS Provider oder auf dessen Weboberfläche vorgenommen werden. In meinem Fall ist die Domain: staging.wheelmap.org

screenshot_admin_rocket_rentals Damit der Rocket Rentals Server richtig auf den Request reagieren kann, muss im Admin Frontend ebenfalls eine Subdmain angelegt werden. Dazu logged man sich unter beim Hosting ein. Im oberen Menü wählt man “Sites”. Aus dem linken Menü wählt man dann “Subdomain” aus. Das Host Feld beinhaltet den Namen der Subdomain. Der Redirect Type ist “No flag”. Der Redirect Path ist “/<subdomain>_<domain>_<tld>”. Beispiel: “/staging_wheelmap_org”. Nach dem Speichern dauert es höchstens 15 Minuten, bis die Änderungen aktiv sind. In der Zwischenzeit können wir aber schon eine neue Datenbank anlegen. Das ist besonders wichtig, da wir nicht die Produktivdatenbank versehentlich verändern wollen, wenn die Auftraggeber die neue Version ausprobieren und dabei Daten manipulieren. Auch das kann auf der Admin Seite des Rocket Rentals Frontend geschehen. Usernamen und Passwort für die Datenbank nicht vergessen!

Dann muss auf dem Rechner, der das deployment durchführt eine Capistrano Erweiterung installiert werden:

sudo gem install capistrano-ext

Danach muss die deploy.rb Datei etwas angepasst werden. Füge folgende Zeilen an den Anfang der Datei:

# config/deploy.rb

set :stages,        ['staging', 'production']
set :default_stage, 'staging'
require 'capistrano/ext/multistage'

Jetzt werden für jede Umgebung im Rails Projekt unter config/deploy/ eine eigene Datei mit dem Umgebungsnamen angelegt:

mkdir -p config/deploy
touch config/deploy/staging.rb
touch config/deploy/production.rb

Aus der bisherigen deploy.rb Datei müssen folgende Zeilen in die config/deploy/production.rb kopiert werden:

# config/deploy/production.rb

set :application, 'domain_tld' # Beispiel: wheelmap_org
set :db_names, :production => 'prod_db_name'
set :db_user, 'prod_db_username'
set :db_password, 'prod_db_password'
set :rails_env,   'production'

Anschließend müssen diese Zeilen in der config/deploy.rb auskommentiert oder gelöscht werden.

In der config/deploy/staging.rb Datei müssen jetzt die Angaben für die Staging Umgebung gemacht werden:

# config/deploy/staging.rb

set :application, 'subdomain_domain_tld' #Beispiel: staging_wheelmap_org
set :db_names, :production => 'staging_db_name'
set :db_user, 'staging_db_username'
set :db_password, 'staging_db_password'
set :rails_env,   'staging'

Nun sind alle Vorbereitungen getroffen und wir können die Staging Umgebung einrichten:

cap staging deploy:setup

Danach kann die Anwendung deployed werden:

cap staging deploy:cold

Will man die Live Version deployen führt man folgenden Befehl aus:

cap production deploy

Bei Problemen oder Fragen einfach einen Kommentar hinterlassen.

  1. 29. Juli 2010, 08:25 | #1

    Super-Artikel, danke dir! Haben das in die generelle Anleitung für’s RR Hosting Capistrano-Deployment eingetragen:

    https://rocket.plan.io/projects/cap-git/repository/revisions/5d29ac78f3382e309fd73a8ea356cce258f4f043/raw/config/deploy.rb

    (Zugang für unser Planio wird benötigt; als RR Hosting Kunde einfach bei uns erfragen!)

  1. Bisher keine Trackbacks