Vagrant
Ziele und Kompetenzen
Grundlagen zur automatisierten Virtualisierung kennen lernen
Motivation

Was ist Vagrant
Tool zum automatisierten Aufsetzen von virtuellen Entwicklungsumgebungen
Die Idee: Entwicklungsumgebung soll dem produktiven System so ähnliche wie möglich sein
Gedankenspiel: Wie groß wäre der Unterschied zwischen Ihrer Entwicklungsumgebung und dem Zielsystem?
Vagrant wurde in Ruby von Mitchel Hashimoto entwickelt
Anwendungsgebiete
Testen von Software in unterschiedlichen Umgebungen und Betriebssystemen
Workflows mit verschiedenen Configuration Management Tools testen (Chef, Puppet, Ansible)
Identische Umgebungen für unterschiedliche Entwickler / Team-Mitglieder aufsetzen
Testen von Multi-Server Use Cases automatisieren
Vorteile
Es werden sog. »Basis Images« genutzt, d.h. Betriebssystem muss nicht installiert werden
Einstellungen können konfiguriert werden
Ausführung von Automatisierungs-Tools wie Chef, Puppet oder Ansible
Nochmal zur Erinnerung
Wir möchten vermeidbare manuelle Tätigkeiten so gut wie möglich automatisieren
Wozu?
Zeitgewinn
Vermeidung von Fehlern
Reproduzierbarkeit
Grundlagen
Begriffe
Provider
Virtualisierungstechnologien: VirtualBox, Hyper-V, VMWare, Docker, AWS...)
Provisionier:
Configuration Management Tool (Chef, Puppet, Ansible)
Box / Vagrantbox
Vorlage zur Erstellung einer virtuellen Maschine (VM)
Vagrantfile:
Konfigurationsfile für Vagrant
Kommandos
box {add|remove|prune..}Fügt eine Box hinzu, entfernt diese etc.global-statusStatus aller Vagrant-UmgebungeninitInitialisiert das aktuelle Verzeichnis für eine BoxhaltSchaltet die virtuelle Maschinen(n) abprovisionFührt den Provisioner gegen die VMs ausreloadNeustart nach ÄnderungensshShell Zugriff auf die MaschineupErstellt und Startet die VM gemäß dem Vagrantfile
Standard Boxes
https://app.vagrantup.com/boxes/search
Öffentliche Boxes sind kostenlos
Persönlicher bzw. Unternehmens-Account ermöglicht das Speichern von privaten Boxes
Multi-Server Setup
Mehrere identische Maschinen möglich:
Port Forwarding
Gleiches Verhalten auf allen Maschinen
Standard-Ports auf den virtuellen Maschinen nutzbar
Ports vom Host-System werden weitergeleitet
IaC
Konfiguration am Beispiel der VMBox Einstellungen
Vagrant und Ansible
Ansible als Provisioner:
Vorteil Playbook kann automatisch gegen Box ausgeführt werden
Provisionierung
bootstrap.shim Verzeichnis des Vagrantfile
Base Box erstellen
Am Beispiel VirtualBox
Jede in VirtualBox erstelle VM kann verwendet werden
Harte Anforderungen Seitens Vagrant
Der erste Netzwerkadapter muss zwingend ein NAT-Adapter sein
MAC Adresse der VM muss bekannt sein, wird später im Vagrantfile eingetragen (
config.vm.base_mac)
Vagrant vs. Docker
Docker: Bauen, ausliefern und betreiben von verteilten Anwendungen
Container laufen im bzw. nutzen das Host-Betriebssystem
Vagrant: Leichtgewichtiges Tool um virtuelle Umgebungen zu konfigurieren und zu erstellen
Virtuelle Maschinen bringen Ihr Betriebssystem mit
Docker kann als Provider für Vagrant genutzt werden
Voraussetzungen zur Nutzung von Vagrant
Provider
Z.B. VirtualBox
Vagrant installieren
Vagrant Box downloaden
Last updated