Vagrant
Inhaltsverzeichnis
Was ist Vagrant?
Definition
Virtuelle Maschinen, oftmals abgekürzt als VMs, sind in der IT-Welt äußerst nützlich, denn sie eignen sich hervorragend dafür, bisher noch ungetestete Software auszuprobieren, ohne dabei das Host-System zu gefährden.
Das Aufsetzen einer solchen “Sandbox” oder Testumgebung kann aber gerade bei spezifischen Konfigurationen ohne Standard-Image viel Zeit in Anspruch nehmen. Die HashiCorp hat sich diesem Thema angenommen und mit Vagrant eine Software entwickelt, die den Erstellungsprozess von virtuellen Maschinen automatisieren kann.
Das Konzept von Vagrant
Ohne eine geeignete Anwendung ist es nicht möglich, mit Vagrant virtuelle Maschinen zu erstellen, denn das Programm agiert lediglich als Schnittstelle zwischen den verschiedenen Konfigurationsebenen, in diesem Fall zwischen der Shell-Anwendung und der Ausführungsebene.
Die ausführenden Programme können Virtualisierungshypervisors wie VMWare, VirtualBox, Microsofts Hyper-V, KVM und QEMU sein. Möchte man zusätzlich auch das Provisioning per Befehl automatisieren, kann man eine geeignete SCM-Software, beispielsweise die Open-Source-Software Saltstack oder Puppet verwenden.
Die komplette Konfiguration wird über Shell-Kommandos durchgeführt und kann, in Skripten und Konfigurationsdateien gespeichert, vollständig automatisiert werden. Das Aufsetzen einer VM funktioniert unter Vagrant im Prinzip ähnlich wie mit den grafischen Benutzeroberflächen der Virtualisierungsprogramme, ist aber reduziert auf eine textbasierte Darstellung.
Um verschiedene Konfigurationen zu speichern, nutzt HashiCorp ein sowohl lokal verfügbares als auch cloudbasiertes System der sogenannten “Boxen”. In einer Box wird die Hardware-Konfiguration, die Einstellungen und die Software einer virtuellen Maschine in einer einzigen Datei abgespeichert. Vorgefertigte und gespeicherte Boxen können mithilfe von Tags und Filteroptionen entweder lokal oder in der Cloud gesucht und mit anderen Nutzern geteilt werden.
Mit geeigneten Shellscripts kann nach der Erstellung das Provisioning durchgeführt werden. HashiCorp arbeitet mit SCM-Anbietern zusammen, um eine hohe Kompatibilität des Wrappers zu gewährleisten und bietet momentan Unterstützung für mehrere Anbieter von Software-Configuration-Management-Software (SCM).
Über Push-Befehle kann im Anschluss direkt ein gewünschtes Softwarepaket auf die virtuelle Maschine geladen werden, schon bevor diese zum ersten Mal gestartet wurde. Vagrant nutzt dafür das eigens dafür entwickelte Atlas, das die Protokolle Heroku, FTP und Secure-FTP unterstützt.
Auch die Verwaltung virtueller Maschinen ist über die Vagrant-Shell möglich, bietet allerdings ohne Erweiterungen nur rudimentäre Befehle wie das Starten und Beenden von Sitzungen, das Löschen von Maschinen und das Abfragen verschiedener Statusparameter. Neuere Versionen erlauben zudem das Erstellen von Snapshots. Dabei handelt es sich um komplett gespiegelte Festplattenabbilder, mit denen die virtuellen Maschinen bei einem Fehler oder Absturz vollständig wiederhergstellt werden können.
Betriebssysteme
Die aktuelle Version 2.2.2 ist kompatibel mit den 32- und 64-bit-Versionen von Windows 10, Debian und CentOS sowie den 64-bit-Versionen von SuSe Linux, macOS und Arch Linux. HashiCorp führt zudem ein Archiv, das auch ältere Versionen der Software zum kostenlosen Download bereithält.
Vagrant wird unter der MIT-Lizenz vertrieben, die vom Massachusetts Institute of Technology herausgegeben wird. Es handelt sich um quelloffene Software (Open-Source), für die eine kostenlose Nutzung und in großen Teilen sogar eine eigene Modifikation gewährt wird. Für diese Zwecke stellt der Entwickler eine eigene Plugin-API zur Verfügung.
Erweiterungsmöglichkeiten
Vagrant wurde vollständig in Ruby programmiert und ist modular angelegt. Die Plugin-API wird von der Software selbst genutzt, um die Module untereinander zu verbinden, weswegen eine Implementierung weiterer Funktionen kaum etwas im Wege steht. Nutzern ist es möglich, eigene Kommandos zu erstellen und durch sogenannte Action-Hooks mit weiteren Programmen zu verbinden, um den entsprechenden Funktionsumfang zur Verfügung zu stellen.
Doch damit nicht genug, es ist sogar möglich, mithilfe von Plugins eigene Action Hooks zu schreiben, wodurch es prinzipiell möglich ist, eigene Versionen von Vagrant zu schreiben. Abgesehen davon ist es mit entsprechender Erfahrung natürlich ebenfalls möglich, weitere VM-Hosts, Verteil- und Provisioning-Software abseits der bereits verfügbaren in den Wrapper zu integrieren oder die zur Verfügung gestellten Befehle für Hosts und Gäste den eigenen Wünschen anzupassen.
Vagrant + VMware
Es ist möglich, Vagrant als Bundle zusammen mit dem VMware Hypervisor zu erwerben. Dann erhält man für 79 EUR pro “Sitz” (ein Sitz besteht aus einer Desktop-Workstation und einem Mobilgerät genutzt von einer Person) eine für immer geltende Lizenz inklusive Wartungs-Updates, muss allerdings für mögliche Feature-Updates möglicherweise eine erneute Gebühr bezahlen.
Wer sich für eine Lizenz von VMware Fusion bzw. VMware Workstation unter diesen Konditionen entscheidet, unterstützt damit die Open-Source-Projekte der HashiCorp und damit natürlich auch Vagrant.
Starke Community
Der Austausch mit seinen Nutzern ist ein starker Fokus der HashiCorp, deswegen hat der Entwickler gleich mehrere Kanäle eingeräumt, um mit ihm in Kontakt zu treten. Sehr aktiv sind die öffentliche Google-Gruppe “vagrant-up” und die “HashiCorp-announcements“-Gruppe, die für offizielle Ankündigungen genutzt wird. Nicht fehlen darf natürlich ein Bug-Tracker, der auf GitHub zu finden ist und alle aktuellen Konflikte und Probleme, aber auch zukünftige Feature-Requests enthält.
Zu finden ist hier für Interessierte auch der Source-Code der Software. Private und öffentliche Trainingskurse für Vagrant sind verfügbar, müssen aber im Gegensatz zur Software bezahlt werden.
Tipp
Wenn Sie noch Fragen bezüglich eines Online Marketing Themas haben, dann können Sie gerne unseren Glossar besuchen und sich über das Thema informieren, wo Sie noch speziell Fragen haben.
Sie haben noch Fragen?