DevOps - Vagrant
Parameter | Kursinformationen |
---|---|
Veranstaltung: |
|
Semester |
|
Hochschule: |
|
Inhalte: |
|
Startseite | |
Link auf den GitHub: | |
Autoren | @author |
Ziele und Kompetenzen
Grundlagen zur automatisierten Virtualisierung kennen lernen
Was ist Vagrant?
{{1}}
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
{{2}}
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
{{3}}
Vorteile
Es werden sog. »Basis Images« genutzt
Betriebssystem muss nicht installiert werden
Einstellungen können konfiguriert werden
Ausführung von Automatisierungs-Tools wie Chef, Puppet oder Ansible
{{4}}
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
{{1}}
Kommandos
box {add|remove|prune..}
Fügt eine Box hinzu, entfernt diese etc.global-status
Status aller Vagrant-Umgebungeninit
Initialisiert das aktuelle Verzeichnis für eine Boxhalt
Schaltet die virtuelle Maschinen(n) abprovision
Führt den Provisioner gegen die VMs ausreload
Neustart nach Änderungenssh
Shell Zugriff auf die Maschineup
Erstellt und Startet die VM gemäß dem Vagrantfile
{{2}}
Standard Boxes
https://app.vagrantup.com/boxes/search
Öffentliche Boxes sind kostenlos
Persönlicher bzw. Unternehmens-Account ermöglicht das Speichern von privaten Boxes
{{3}}
Multi-Server Setup
Mehrere identische Maschinen möglich:
{{4}}
Port Forwarding
Gleiches Verhalten auf allen Maschinen
Standard-Ports auf den virtuellen Maschinen nutzbar
Ports vom Host-System werden weitergeleitet
IaC
am Beispiel der VMBox Einstellungen
{{1}}
Vagrant und Ansible
Ansible als :
Vorteil Playbook kann automatisch gegen Box ausgeführt werden
{{2}}
Provisionierung
bootstrap.sh
im Verzeichnis des Vagrantfile
{{3}}
Base Box erstellen
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
)
{{4}}
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
{{5}}
Voraussetzungen
Provider
Z.B. VirtualBox
Vagrant installieren
Vagrant Box download
Referenzen
Last updated