Was ist Vagrant?
Zur Navigation springen
Zur Suche springen
Basics
- Vagrant ist eine freie Ruby-Anwendung zum Erstellen und Verwalten virtueller Maschinen.
- Vagrant ermöglicht einfache Softwareverteilung
- Es wird insbesondere in der Software- und Webentwicklung eingesetzt
- Und dient als Wrapper zwischen Virtualisierungssoftware wie:
- VirtualBox
- KVM/QEMU
- VMware
- Hyper-V
- Und Software-Configuration-Management-Anwendungen beziehungsweise Systemkonfigurationswerkzeugen wie
- Chef
- Saltstack
- Puppet
- Ansible
Funktionsweise und Konzepte
Projektinitialisierung
- Um einen Ordner zu initialisieren, muss man den Ordner anwählen und den Befehl vagrant init ausführen
- Es wird dann ein sogenanntes „Vagrantfile“ mit Beispielen und Erklärungen erzeugt
- Durch den Zusatz vagrant init --minimal wird eine minimale Version des Vagrantfiles ohne Beispiele und Erklärungen erzeugt.
- Der Zusatz --provider bewirkt das ein spezielles Virtualisierungssystem genommen wird.
- Die Vagrant Datei kann man mit einem normales Editor anpassen.
Boxen
- Boxen sind bei Vagrant vorkonfigurierte (Vorlagen) Virtuelle Maschinen.
- Dies soll den Prozess der Softwareverteilung und der Entwicklung beschleunigen.
- Jede Box, die von dem Nutzer benutzt wurde, wird auf dem Computer gespeichert.
- Boxen können explizit durch den Befehl vagrant box add [box-name] oder vagrant box add [box-url] heruntergeladen werden
- Sie können durchvagrant box remove [box-name] entfernt werden.
- Ein „box-name“ ist dabei durch Konvention wie folgt aufgebaut: „Entwickler/Box“, zum Beispiel „hashicorp/precise32“.
- Vagrant Cloud dient dabei als Austauschplattform für die Suche nach Boxen und das Einstellen von eigenen Boxen.
- Wird nur ein box-name angegeben, wird davon ausgegangen, dass die Box lokal vorhanden ist.
- Ansonsten wird in der Vagrant Cloud nach der Box gesucht.
Konfiguration
- Die gesamte Konfiguration erfolgt im Vagrantfile, das ein spezielles Ruby-Programm enthält.
Provisioning
- Beim Provisioning ruft Vagrant andere Programme auf, zumeist SCM-Software wie Ansible oder die Shell.
- Dies automatisiert die Konfiguration.
- In Vagrant stehen folgende Provisioner zur Verfügung:
- File
- Shell
- Ansible
- CFEngine
- Chef Solo
- Chef Client
- Docker
- Puppet Apply
- Puppet Agent
- Salt