Suche

Einweg-VM zur Runtime erstellen

Installiert man Vagrant auf einem System, kann man es direkt von der Kommandozeile aus nutzen. Der einfachste Weg, eine VM zu erstellen und zu starten, wird durch das Ausführen folgender Befehle ermöglicht:

$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
$ vagrant init lucid32
$ vagrant up

Wie bereits erwähnt, nutzt Vagrant Boxen als Templates für virtuelle Maschinen. In der ersten Zeile wird eine solche Box definiert und zu Vagrant hinzugefügt. Die hier definierte Box hat den Namen „lucid32“ und kann von Vagrant unter „http://files.vagrantup.com/lucid32.box“ runtergeladen werden. Diesen Aufruf muss man nur einmal durchführen. Vagrant speichert daraufhin intern das Template, und man kann jederzeit durch Angabe des Namens der Box eine neue VM auf deren Basis hochziehen. Auf der Vagrant-Seite werden mit „lucid32“ und „lucid64“ zwei offiziell unterstützte Boxen angegeben, die auf Ubuntu Lucid (32bit oder 64bit) basieren. Benötigt man eine andere Linux-Distribution als Basis, kann man unter http://www.vagrantbox.es eine Vielzahl an weiteren Boxen finden.

Durch den zweiten Befehl wird auf Basis der „lucid32“ Box eine neue VM konfiguriert. Hierfür wird im aktuellen Verzeichnis die Datei „Vagrantfile“ angelegt, welche die komplette Konfiguration der VM beinhaltet. Durch den „init“-Befehl wird diese Datei mit einer startbaren Basiskonfiguration gefüllt.

Die letzte Zeile startet die VM nun in der lokalen VirtualBox-Installation. Die so aufgesetzte VM ist ein einfaches Ubuntu-System, auf dem eigentlich noch keine Services und Tools installiert sind. Will man auf die VM zugreifen, kann man diese durch Vagrant sehr einfach mit SSH erreichen:


$ vagrant ssh

Zusätzlich wird das Verzeichnis, von dem man eine neue VM-Umgebung aufsetzt (also das Verzeichnis mit dem Vagrantfile), als „/vagrant“ in die VM gemountet.
Die so erstellte VM kann problemlos durch folgenden Befehl komplett zerstört werden:


$ vagrant destroy

Der Vorteil dieses Vorgehens ist, dass man eine einmal konfigurierte VM immer wieder durch „vagrant up“ erstellen und durch „vagrant destroy“ zerstören kann. Sobald man eine solche VM also einmal mit einer laufenden MySQL-Datenbank konfiguriert hat, ist es möglich, diese zum Beispiel für Testzwecke immer wieder als Sandbox durch einen einfachen Befehl in der Shell hochzuziehen.

Nun stellt sich natürlich die Frage, wie man eine solche VM konfigurieren kann. Hier bietet Vagrant erst einmal einige Parameter, um den Zugriff auf die VM zu ermöglichen. So lassen sich im Vagrantfile beispielsweise die IP der VM oder PortForwarding konfigurieren. Ein Vagrantfile für eine VM mit einer statischen IP sieht z.B. wie folgt aus:

Vagrant::Config.run do |config|
	config.vm.box = "lucid32"
	config.vm.box_url = "http://files.vagrantup.com/lucid32.box"
	config.vm.network :hostonly, "192.168.33.10"
end

Vagrant selber verfügt über eine sehr gute Dokumentation und einen „Get Started“-Guide, die man beide online unter http://www.vagrantup.com finden kann.

Um nun Services und Tools auf der VM zur Verfügung zu stellen, greift Vagrant auf zusätzliche Werkzeuge zu, die als so genannte „Provisioner“ in Vagrant konfiguriert werden können. Hierbei kann man zwischen verschiedenen Anbietern wählen, wobei Chef und Puppet die aktuell bekanntesten und größten Provisioner sind. Diese Provisioner konfigurieren ein System automatisch auf Basis eines Scriptes bzw. eines Konfigurationsfiles. In diesem Artikel wird Puppet für alle Beispiele gewählt. Allerdings kann man auch alle Punkte durch die Nutzung von Chef erreichen.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.