Warum Vagrant eine neue VM erstellt anstatt die vorhandene aus dem Ruhezustand zu holen

von | Apr 25, 2012 | Allgemein | 0 Kommentare

Wer mit Vagrant arbeitet kann sich an den Vorteilen einer Virtual Machine erfreuen. Einmal gestartet baut sich je nach Konfiguration das System auf, installiert über die Provisioners die notwendige Software die man zusätzlich braucht und nach einer vom Umfang der Software abhängigen Wartezeit hat man ein fertiges Entwicklungssystem. Hiermit ist es für jeden sehr einfach sich ein System aufzubauen welches dem auf der Productionseite ähnlich oder sogar gleich aufgebaut ist. Und wenn die Virtual Machine nicht mehr verwendet wird, kann sie in den Ruhezustand versetzt werden um sie am nächsten Tag ohne lange zu warten wieder zu starten.

Die Überraschung war jedoch groß als ich heute morgen mein System aus dem Ruhezustand zurückholen wollte aber Vagrant eher der Meinung war das System komplett neu aufsetzen zu müssen. Ein kurzer Blick in meine VirtualBox verriet mir allerdings das mein eigentliches System sich noch immer im Suspended Mode befand diese jedoch beim Starten nicht mehr verwendete. Wieso wurde nicht mehr die vorhandene Virtual Machine verwendet?

Welche der vorhandenen VMs von Vagrant verwendet wird legt die Datei .vagrant fest welche sich im selben Verzeichnis wie die Vagrantfile-Datei befindet. In einem Texteditor geöffnet offenbart sich dem Betrachter ein recht schlichtes Json Format:

{"active":{"default":"bbaefe94-1c67-414d-80e7-5bc68d38882f"}}

Der Wert des default-Keys gibt an welche der vorhandenen VMs verwendet werden soll, jedoch kann man aus dem Wert nicht erkennen welche der hinterlegten VMs beim Start angesprochen werden. Sollte aus irgendeinem Grund die Datei korrumpiert oder vielleicht gelöscht werden, so wird beim nächsten vagrant up eine neue VM aufgesetzt auch wenn sich auf eurer Festplatte immer noch die ursprüngliche VM befindet. Um an den Bezeichner eurer gewünschten VM zu kommen bietet VirtualBox hierfür den Konsolenbefehl VBoxManage an. Mit dem folgenden Aufruf listet ihr nicht nur alle vorhandenen Virtual Machines auf sondern auch ihre dazugehörenden Bezeichner:

C:Program FilesOracleVirtualBoxVBoxManage.exe list vms

Legt nun eine .vagrant Datei in eurem Projektverzeichnis an in dem sich auch das dazugehörende Vagrantfile befindet und fügt den Json-Code mit dem ermittelten Bezeichner eurer VM dazu. Beim nächsten Start über Vagrant wird nun die VM verwendet deren Bezeichner in die .vagrant eingetragen wurde.

Diese Vorgehensweise habe ich mit der Vagrant-Version 1.0.2 durchgeführt. Ob dieser Lösungsweg auch noch bei zukünftigen Versionen funktioniert bleibt abzuwarten.

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Akeneo trifft auf künstliche Intelligenz

Akeneo trifft auf künstliche Intelligenz

In der heutigen Zeit sind Unternehmen auf der Suche nach innovativen Technologien, um ihre Geschäftsprozesse zu optimieren und ihre Wettbewerbsfähigkeit zu steigern. Eine dieser Technologien ist Künstliche Intelligenz (KI), die Unternehmen bei der Automatisierung von...

mehr lesen
Consent Management Platform von Real Cookie Banner