VMs mit Vagrant erstellen

Seite 5: Erweiterungsoptionen und Fazit

Inhaltsverzeichnis

Um die Funktionen von Vagrant zu erweitern, kann man auf Plug-ins zurückgreifen. Deren Installation ist denkbar einfach: Es genügt, das folgende Kommando auf der Konsole aufzurufen:

$ vagrant plugin install <plugin-name>

Eine Liste aller installierten Plug-ins erhält man, indem man das Kommando

$ vagrant plugin list

aufruft. Benötigt man eines nicht mehr, kann man es mit

$ vagrant plugin uninstall <plugin-name>

wieder entfernen. Für den Einsatz von Plug-ins gelten dabei prinzipiell die gleichen Sicherheitsbedenken wie für den Einsatz von Abbildern unbekannter oder nicht vertrauenswürdiger Herkunft: Sie können Sicherheitslücken enthalten oder die Stabilität von Vagrant beeinträchtigen. Daher sollte man sie nicht wahllos einsetzen.

Nachteilig ist, dass Vagrant Plug-ins derzeit nur global installieren kann und nicht für ausgewählte virtuelle Maschinen: Somit ist ein Plug-in entweder stets oder nie aktiv. Das mag für die meisten zu verschmerzen sein, kann allerdings schnell lästig werden.

Ein ausgesprochen hilfreiches Plug-in, das man (fast) jeder Installation bedenkenlos hinzufügen kann, ist vagrant-vbguest, das die in der virtuellen Maschine installierten VirtualBox Guest Additions mit der Version von VirtualBox synchronisiert.

Die Installation erfolgt auf dem bereits erwähnten Weg:

$ vagrant plugin install vagrant-vbguest

Selbstverständlich ist es zudem möglich, eigene Plug-ins zu entwickeln. Eine Beschreibung der hierfür notwendigen Schritte findet sich in der Vagrant-Dokumentation.

Zu guter Letzt sei noch darauf hingewiesen, dass Vagrant außer VirtualBox auch andere Software zur Virtualisierung fernsteuern kann. Zu Beginn dieses Artikels wurde bereits VMware erwähnt: Hierfür ist jedoch ein Plug-in erforderlich, das man auf der entsprechenden Webseite kostenpflichtig herunterladen kann. Abgesehen davon, dass man für den Einsatz mit VMware andere Betriebssystemabbilder benötigt, unterscheidet sich der Arbeitsablauf nicht von dem auf Basis von VirtualBox: Kommandos wie vagrant up und vagrant ssh gelten gleichermaßen.

Darüber hinaus gibt es noch weitere Plug-ins, die Vagrant mit anderen Plattformen verbinden: Das vom Autor von Vagrant, Mitchell Hashimoto, entwickelte vagrant-aws dient beispielsweise dem automatisierten Verwalten und Provisionieren von virtuellen Maschinen auf Basis von Amazons EC2-Cloud. Ähnliche Plug-ins gibt es für zahlreiche andere Cloud-Plattformen wie Joyent, OpenStack oder Rackspace. Eine vollständige Liste findet sich in einer Übersicht des Projekts.

Vagrant stellt eine enorme Vereinfachung für Entwickler dar, die regelmäßig virtuelle Maschinen erstellen und provisionieren müssen. Es erleichtert nicht nur die Arbeit, sondern stellt insbesondere die Reproduzierbarkeit des Ergebnisses sicher. Dies kommt in besonderem Maße Teams zu Gute.

Da die gesamte Konfiguration in einer kompakten Datei erfolgt, lässt sie sich leicht mit einer Versionsverwaltung kontrollieren und verteilen ohne zugleich viel Speicherplatz im zentralen Repository zu verschwenden. Selbstverständlich fällt zunächst der Aufwand an, eine virtuelle Maschine vorzubereiten und die Konfiguration der Provisionierung vorzunehmen: Das mag zwar lästig sein, wäre aber ohne Vagrant ebenfalls erforderlich. Der Einsatz des Tools reduziert die Notwendigkeit für diesen Schritt aber auf ein einziges Mal, danach lässt sich eine virtuelle Maschine auf Tastendruck erstellen und stets gleich konfigurieren und provisionieren.

Abschließend kann man festhalten, dass Vagrant in die Werkzeugsammlung eines jeden Softwareentwicklers gehört und insbesondere Teams gut beraten sind, einen näheren Blick zu wagen. Der hierzu nötige Aufwand kann sich in kurzer Zeit auszahlen.

Golo Roden
ist Gründer der "the native web UG", eines auf native Webtechniken spezialisierten Unternehmens. Für die Entwicklung moderner Webanwendungen bevorzugt er JavaScript und Node.js und hat mit "Node.js & Co." das erste deutschsprachige Buch zum Thema geschrieben.
(jul)