Zum Newsletter anmelden

Automatisierte Magento-Installation mit "Jumpstorm"

  Christoph     Jul 12, 2012

Jumpstorm ist eine Konsolenanwendung zur automatisierten Installation von Magento, Magento Sample Data und Magento-Extensions. Die Architektur des Programms wurde anlässlich des BarCamps zur sechsten Meet Magento überarbeitet und erlaubt nun zusätzlich die Ausführung von Post-Installations-Routinen.

Motivation

Gründe für ein schnelles Aufsetzen von Magento-Installationen gibt es reichlich. Für Netresearch als Magento Preferred Extension Development Partner stand zunächst im Vordergrund, Magento-Erweiterungen automatisiert testen zu können. Im Rahmen einer kontinuierlichen Integration (Continuous Integration, CI) sollte gewährleistet sein, dass neue Entwicklungsstände sofort aus der Versionsverwaltung in eine frische Magento-Installation integriert und dort geprüft werden (PHP Unit Tests und Selenium IDE Tests), ohne dem Entwickler unnötige sich wiederholende Aufwände aufzubürden.

Noch während der Entwicklung von Jumpstorm kamen weitere Anwendungsszenarien entlang des Software-Lebenszyklus' hinzu. So ist es in der Konzeption und Entwicklung immer wieder hilfreich und notwendig, realitätsnahe Demonstrationssysteme für Product Owner, Entwickler und Auftraggeber zur Verfügung zu stellen. Entwicklung und Test können schnell an andere Programmierer übergeben werden, der aktuelle Projektfortschritt kann in Reviews einfach überprüft werden und die Kompatibilität einer Extension in mehreren Magento-Versionen und Editionen kann ohne mühsames händisches Installieren nebenbei sichergestellt werden. Die Problemlösungszeit im Support wird merklich verkürzt, da sehr schnell die konkrete Umgebung des Händlers nachgestellt werden kann.

Architektur & Features

Jumpstorm ist eine komplett in PHP realisierte und dokumentierte Konsolenanwendung. Eine Linux-Distribution mit PHP in der Version 5.3 aufwärts reicht aus, um das Programm erfolgreich ausführen zu können. Gesteuert wird die Software über eine Konfigurationsdatei, in der die wesentlichen Einstellungen hinterlegt werden:

  • Installationsdateien (Magento) und Installationspfad
  • Datenbankzugang
  • Admin-Account
  • Installationsdateien (Sample Data)
  • Test-Framework
  • Installationsdateien (Extensions)
  • Plugins

Genutzt werden diese Einstellungen in vier Commands, die sich mit Jumpstorm einzeln – entweder von Hand oder durch ein Build-Tool wie Apache Ant – durchführen lassen.

$ ./jumpstorm magento

Das erste Kommando installiert Magento (wahlweise inklusive Sample Data), hinterlegt den Datenbankzugang und legt den Admin-Account an. Unterstützt wird die Magento Community Edition ab Version 1.4.2 und die Magento Enterprise Editions. Welche Version installiert wird, ist abhängig von der in der Konfiguration angegebenen Quelle, aus der Magento installiert werden soll. Die Quelle kann ein Pfad im Dateisystem oder ein Git-Repository sein.

$ ./jumpstorm extensions

Das zweite Kommando installiert die in der Konfiguration angegebenen Erweiterungen. Die Quelle der einzelnen Extensions kann ein Pfad im Dateisystem oder ein Git-Repository sein.

$ ./jumpstorm unittesting

Das dritte Kommando bereitet die Magento-Installation auf die Durchführung von Unit Tests vor. Zu diesem Zweck wird die Extension EcomDev_PHPUnit installiert.

$ ./jumpstorm plugins

Das vierte Kommando führt in der Konfiguration spezifizierte Post-Installations-Routinen (Plugins) aus. Plugins können geschrieben und genutzt werden, um Aktionen durchzuführen, die spezifisch für die jeweilige Installation sind. Aktuell verfügbare Plugins erlauben z.B. das Anlegen zusätzlicher Backend-Accounts, das Verändern der Systemkonfiguration oder das Initialisieren von German Setup.

Ausblick

Derzeit unterstützt Jumpstorm die Installation von Magento aus einem Git Repository oder dem lokalen Dateisystem. Zukünftig soll darüber hinaus ermöglicht werden, die Quelldateien von entfernten Rechnern zu kopieren, bspw. via HTTP, rsync oder von Magento Connect.

Vorbereitet ist zudem ein interaktiver Modus, bei dem das Editieren der zentralen Konfigurationsdatei entfällt. Stattdessen werden die notwendigen Einstellungen während des Installationsprozesses vom Benutzer erfragt.

Nach jeder Installation ist es bisher notwendig, Routing und VHost-Konfiguration manuell vorzunehmen. Eine Möglichkeit, diesen Schritt zukünftig zu vereinfachen, setzt Matthias Zeis in seinem Tool MageSpawner bereits ein: die Verwendung des Apache Moduls mod_vhost_alias.

Neben der allgemeinen Weiterentwicklung von Jumpstorm ist die Erstellung zusätzlicher Plugins ein geeigneter Anknüpfungspunkt für jeden interessierten Entwickler. Durch die Plugin-Architektur und die Verfügbarkeit von Jumpstorm auf GitHub sind die Einstiegshürden für die Mitarbeit an der Konsolenanwendung äußerst gering.

Tags  Development Lab Magento Magento Extension Meet Magento

Christoph

Von Christoph

Softwareentwickler bei Netresearch.

Kategorien:

alle ansehen

Zum Newsletter anmelden