6. Agenda
a.k.a. "Der Inhalt ist immer invers proportional zum Aufwand,
der ins Layout gesteckt wurde" :-)
● Was ist Konfigurationsmanagement?
● Was ist puppet?
● Was ist vagrant?
● Live-Hacking: Starten eines kleinen Clusters auf dem
Laptop inkl. einer Hello-World-App
8. Server-Admin Probleme
Wie setze ich einen Server reproduzierbar auf?
Denn:
Wiki / Doku verstaubt oder wird nicht gefunden
Wie hält man es auf Stand? Einloggen auf alle n Server?
24. vagrant - even the logo is cool!
www.vagrantup.com - kudos to Mitchell Hashimto
25. Dev-Umgebung: Ist-Analyse
Wie entwickelt ihr und wie setzt ihr euer Dev-System auf?
● Lokal auf dem Desktop?
● Testserver?
● Sandboxes auf VM-Server?
● lokale VMs?
● Noch anders?
29. Soll-Zustand I
Isolation der Testumgebung
vs.
Dein Desktop - ein Softwarezoo: Browser, Webserver,
Musikplayer, Datenbankserver, Editor)
oder
geteilter Testserver: Shared Ressourcen, Shared Software ->
Kollisionen (Beispiel: memcache keys oder "Lass uns mal PHP
5.3 ausprobieren")
30. Soll-Zustand II
Wiederholbar
vs.
nach 6 Monaten findet Kunde einen Bug, wie lange brauchst
du, um das Projekt "rauszukramen" und den Fehler
zu reproduzieren / fixen ?
oder z. B. lange Einrichtung bei Neuem Mitarbeiter /
Projektbeteiligter
oder: 3 Wochen Urlaub, Testsystem völig outdated
31. Soll-Zustand III
Einheitlichkeit
vs.
"It works on my machine"
Anderes OS als in Produktion (!)
Andere Kernel (32 vs. 64bit), Libs, Software und Versionen als
in Produktion
... PHP (is_a() anyone?)
32. Definition: Was ist vagrant
"Vagrant is a tool for building and distributing virtualized
development environments."
"By providing automated creation and provisioning of virtual
machines using Oracle’s VirtualBox, Vagrant provides the
tools to create and configure lightweight, reproducible, and
portable virtual environments.
33. Was ist vagrant?
● "Dev-Env zum Mitnehmen"
● Verwaltung des VM Lebenszyklus
● Shared Folders / lokales NFS
● SSH
● Konfiguration der VMs via Puppet / Chef / bash-script
● komplexe Multi-VM-Setups inkl. privatem Netzwerk
● Framework zur Erstellung von VM-BaseImages (Base
Boxes)
34. Vagrantfile
● Beschreibt die VM(s)
● Eins pro Projekt - kommt mit in die Versionskontrolle
deines Projekts
● Configfile ist Ruby (und damit scriptbar)
That's it (für eine VM)!