Vagrant
Last updated
Last updated
Grundlagen zur automatisierten Virtualisierung kennen lernen
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
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
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
Wir möchten vermeidbare manuelle Tätigkeiten so gut wie möglich automatisieren
Wozu?
Zeitgewinn
Vermeidung von Fehlern
Reproduzierbarkeit
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
box {add|remove|prune..}
Fügt eine Box hinzu, entfernt diese etc.
global-status
Status aller Vagrant-Umgebungen
init
Initialisiert das aktuelle Verzeichnis für eine Box
halt
Schaltet die virtuelle Maschinen(n) ab
provision
Führt den Provisioner gegen die VMs aus
reload
Neustart nach Änderungen
ssh
Shell Zugriff auf die Maschine
up
Erstellt und Startet die VM gemäß dem Vagrantfile
https://app.vagrantup.com/boxes/search
Öffentliche Boxes sind kostenlos
Persönlicher bzw. Unternehmens-Account ermöglicht das Speichern von privaten Boxes
Mehrere identische Maschinen möglich:
Gleiches Verhalten auf allen Maschinen
Standard-Ports auf den virtuellen Maschinen nutzbar
Ports vom Host-System werden weitergeleitet
am Beispiel der VMBox Einstellungen
Ansible als :
Vorteil Playbook kann automatisch gegen Box ausgeführt werden
bootstrap.sh
im Verzeichnis des Vagrantfile
Am Beispiel
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
)
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
Provider
Z.B. VirtualBox
Vagrant installieren
Vagrant Box downloaden