Rails Tutorial DHBW-Heidenheim

VMWare

Da die Installation von ruby und rails zwar einfach ist, es aber doch häufig Probleme bei der Installation anderer benötigter Komponenten (insbesondere mysql fällt hier unangenehm auf) gibt, verwenden wir eine virtuelle Maschine, die alle benötigten Komponenten bereits richtig konfiguriert enthält. Ausserdem sind alle Komponenten in den Versionen enthalten, mit denen die Beispiele von uns getestet wurden. Erfreulicherweise entwickelt sich insbesondere rails schnell weiter, das kann aber gelegentlich dazu führen, dass Anpassungen erforderlich sind. Dies ist - nebenbei bemerkt - auch ein Problem vieler Tutorials: Zum Zeitpunkt der Erstellung funktionieren die Beispiele, später nicht mehr. Sollte Ihnen dies bei unseren Beispielen auffallen, informieren Sie uns bitte, wir versuchen, auf dem aktuellen Stand zu bleiben.

Da wir die virtuelle Maschine kostenlos zum Download anbieten wollen, verwenden wir Linux, genauer gesagt OpenSuse in der Version 11.3. Um die virtuelle Maschine benutzen zu können, wird ein VMWare Player (oder besser) benötigt. Dieser kann bei VMWare runtergeladen werden.

Um die Grösse des Images und den Speicherbedarf im Betrieb klein zu halten, handelt es sich um eine Minimalinstallation ohne grafische Benutzeroberfläche. Da wir Web-Anwendungen entwickeln wollen, das heisst Anwendungen, die einen Browser als Plattform für die Benutzeroberfläche verwenden, muss dieser auf dem Wirts-Betriebssystem ausgeführt werden. Die Architektur unserer Anwendungen sieht also immer so aus:

Unsere virtuelle Maschine verwendet als Basis die rails vm von bitnami . Bitnami (und wir auch) stellen diese unter der apache 2.0 Lizenz zur Verfügung. Unsere Änderungen sind im wesentlichen nur ein update der rails-Installation sowie eine Anpassung an deutsche Tastaturen. Ausserdem haben wir einige Hilfsprogramme vorinstalliert.

Installation

Wird eine virtuelle Maschine kopiert, hat man ein prinzipielles Problem mit dem Netzwerk: Würden mehrere Kopien einer VM im gleichen Netz laufen (oder gar auf dem selben Rechner), hätten sie, wenn sie identisch wären, alle die gleiche MAC-Adresse. Das würde schnell zu Problemen führen, wenn die Netzwerksegmente gebridged werden, eine der Optionen für ein VM-Netzwerk.

VMWare ändert deshalb die MAC-Adresse jeder Kopie auf einen anderen Wert. Das bringt uns allerdings ein Problem: OpenSuse (unser Gastbetriebssystem) speichert die Konfiguration der Netzwerkkarten spezifisch für die Mac-Adresse. Das heisst, unser Betriebssystem findet jetzt die Netzwerkkarte nicht mehr. Da müssen wir ihm helfen ;-) Wie das geht, ist in diesem Artikel beschrieben (und im Screencast zu dieser Lesson gezeigt).

accounts und login

Die virtuelle Maschine hat zwei vordefinierte logins: root und bitnami. Beide haben bei der Installation das Kennwort "geheim" (ohne Anführungszeichen). Das Kennwort sollte sofort geändert werden. Dazu dient der passwd Befehl. Er fragt zunächst das alte Kennwort und danach das neue ab. Dieses muss dann nochmals bestätigt werden.

Keyboard Layout

Voreingestellt ist ein deutsches PC-Standard-Tastaturlayout. Wird eine andere Tastatur verwendet, muss dies geändert werden, etwa um bei einem Mac die Funktionstasten korrekt verwenden zu können: Die Tastaturbelegung wird in der Datei /etc/sysconfig/keyboard eingestellt. Fuer OS X muss hier KEYTABLE=mac-de-latin1-nodeadkeys.map.gz eingetragen werden.

Netzwerk

Da der Rails-Webserver (und die komplette Entwicklungsumgebung) in der virtuellen Maschine läuft, der Browser jedoch im Wirtsbetriebssystem, muss eine Netzwerkverbindung zwischen den beiden hergestellt werden.

Dies aber möglichst so, dass nicht von aussen auf die virtuelle Maschine zugegriffen werden kann. Sonst müsste diese immer auf einem aktuellen Softwarestand gehalten werden, um mögliche Sicherheitslücken zu schliessen. Um dabei möglichst viel Flexibilität zu haben, bezieht die virtuelle Maschine eine Adresse von einem DHCP-Server. Dieser wird entweder im lokalen Netzwerk oder vom VMWare Player zur Verfügung gestellt.

Wird eine Adresse aus dem LAN bezogen (dazu muss das VMWare-Netzwerk auf Bridging eingestellt sein), ist die virtuelle Maschine in diesem LAN sichtbar. Dieses sollte dann durch eine Firewall geschützt sein. Vorzuziehen ist deshalb eine Konfiguration, in der die virtuelle Maschine in einem Host-Only-Netzwerk betrieben wird und der DHCP-Server vom VMWare-Player bereitgestellt wird. Dazu wird der Netzwerkmodus auf NAT gestellt. So kann von der virtuellen Maschine aus auf das Internet zugegriffen werden (etwa um updates zu installieren), vom Wirtsbetriebssystem aus ist der Zugriff auf die virtuelle Maschine (also auf unsere rails Anwendungen) möglich, aber ansonsten kann niemand auf unsere VM zugreifen.