Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

Entwicklung & Design

Virtuelle Maschine für DevOps: So setzt du deine Vagrant-Instanz auf

    Virtuelle Maschine für DevOps: So setzt du deine Vagrant-Instanz auf

Vagrant. Virtuelle Maschinen in einfach. (Grafik: vagrantup.com)

Vagrant hat den Umgang mit uniformen und virtuellen Entwicklungsumgebungen für ganze Teams stark vereinfacht. In diesem Artikel erklären wir euch, wie ihr eure Instanz aufsetzen könnt – und sie wieder zerstört.

Vagrant ist die Schnittstelle zwischen Virtualisierungs-Software wie Hyper-V, VMware oder Virtualbox und Systemkonfigurations-Tools wie Chef, Puppet oder Saltstack. Warum ihr euch Vagrant ansehen solltet, könnt ihr in unserem Einführungsartikel lesen. In diesem Artikel will ich euch einen Schritt weiter bringen und euch zeigen, wie ihr Vagrant grundlegend nutzt.

Vagrant up

vagrant-2
Vagrant-Sequenz: Init, Up, Destroy

Vagrant wird grundlegend mit zwei Befehlen initialisiert – vagrant init precise64 http://files.vagrantup.com/precise64.box lädt das vollständige 64-bit Ubuntu 12.04 LTS. Der zweite Befehl ist vagrant up – der die Maschine startet. Das war es schon.

Innerhalb dieser virtuellen Maschine könnt ihr jetzt alles machen. Egal ob ihr Software installieren oder das Dateisystem schrotten wollt. Zugriff auf das OS erlangt ihr über die SSH-Konsole, die ihr mit vagrant ssh ausführen könnt.

Vagrant konfigurieren: Vagrantfile

vagrant-file
Vagrant:So sieht sie also aus, die Konfigurationsdatei.

Mit vagrant up könnt ihr jetzt die virtuelle Maschine starten. Dabei wird zwar eine Default-Konfiguration geladen, die aber ist für die meisten Projekte nicht ausreichend und muss näher spezifiziert und konfiguriert werden. Das Vagrantfile erlaubt es euch, beinahe jeden Default-Wert zu überschreiben, wodurch Vagrant unglaublich stark konfigurierbar ist. Ihr findet es in dem Verzeichnis, in dem ihr den vagrant init-Befehl ausgeführt habt.

Jedes Projekt muss über ein eigenes Vagrantfile verfügen, da jedes Projekt eine eigene isolierte Umgebung darstellt. Dabei ist das Vagrantfile nichts anderes als Ruby-Code innerhalb einer Textdatei mit dem Namen Vagrantfile. Das Vagrantfile definiert die genaue Spezifikation der Arbeitsumgebung: Wieviel Arbeitsspeicher benötigt wird, welches Betriebssystem geladen oder wie eine Internetverbindung hergestellt werden soll – bis hin zur Frage, welche Software installiert werden muss.

Kurzum: Das Vagrantfile spezifiziert die gesamte Entwicklungsumgebung – für das gesamte Team. Möglich wird das dadurch, dass das Vagrantfile für die Nutzung mit Versionskontrollen konzipiert wurde. Somit ist es möglich, dass jeder Projektbeteiligte sich kurzerhand die komplette Entwicklungsumgebung lokal herstellen kann – die jeweils identisch zu den Umgebungen der Projektmitglieder ist: „Auf meinem System gibt es diesen Fehler aber nicht!“ gehört somit der Geschichte an.

Dabei ist zu beachten, dass es derzeit zwei verschiedene Möglichkeiten für eine Konfigruationen gibt: eine für Vagrant Version 1.* und eine eigene für Vagrant Version 2.*. Allerdings könnt ihr Konfigurationen für V1 und V2 innerhalb einer Datei mischen.

Vagrant: Teardown

Ihr hab jetzt eine funktionierende virtuelle Maschine erschaffen – und der Teardown ist genauso einfach. Wir haben alle schon mal vergessen, einen Datenbank- oder Webserver zu beenden – mit Vagrant ist das ziemlich unmöglich, da alle Tools isoliert auf der virtuellen Maschine laufen. Somit reicht auch nur ein Kommando, um alles herunterzufahren. Dabei ist Vagrant in der Lage, die Maschine zu stoppen, sie zu löschen oder sie auszusetzen. Den Status der Maschine könnt ihr jederzeit mit vagrant status einsehen.

Mit vagrant suspend wird ein Snapshot erzeugt, der den Zustand einer Maschine zum Zeitpunkt X jederzeit wiederherstellen kann. Das System wird eingefroren und nicht heruntergefahren. Somit bleibt die virtuelle Maschine erhalten und verbraucht weiterhin RAM-, und Festplatten-Speicher. Um die Maschine aus ihrem Dörnröschenschlaf zu erwecken, könnt ihr vagrant up oder vagrant resume nutzen.

Der Befehl vagrant halt fährt die Maschine runter. Vagrant versucht zuerst, die Maschine in einem Prozess runterzufahren, der alle Unterprozesse beendet. Ist Vagrant nicht in der Lage, die Maschine ordnungsgemäß runterzufahren, wird quasi der Stecker gezogen. Ihr könnt diese Vorgehensweise auch mit der zusätzlichen Flag vagrant halt --force erzwingen.

Um die virtuelle Maschine zu löschen, könnt ihr vagrant destroy nutzen. Dieser Befehl sorgt dafür, dass die virtuelle Maschine völlig vom Gastsystem verschwindet – so als hätte sie nie existiert.

Damit Vagrant mit seinen Kommandos eingesetzt werden kann, müsst ihr den Package-Installer von der offiziellen Website ausführen. Vagrant läuft auf Mac OS X, Windows und Linux (DEB und RPM).

Und jetzt ihr: Setzt ihr auf Docker oder auf Vagrant?

Finde einen Job, den du liebst

1 Reaktionen
Mathias Brodala

Wie auch der offiziellen Doku zu entnehmen (https://docs.vagrantup.com/v2/getting-started/index.html) ist der Start heutzutage deutlich einfacher mit einem einfachen "vagrant init hashicorp/precise64". Das jeweilige Image wird automatisch aus dem Atlas-Katalog von HashiCorp bezogen.

Antworten

Melde dich mit deinem t3n-Account an oder fülle die unteren Felder aus.

Abbrechen