SlideShare a Scribd company logo
1 of 39
Download to read offline
Vagrant - How to make your
   Dev-Env awesome.

  Eine kleine Einführung in puppet
            und vagrant.

    Sönke Ruempler -- @s0enke

     PHP Unconference 2011
Ich


      "last level support" - von strace bis OOP

                "WannaBe-DevOP"

                "Systems thinking"
Jimdo

Website Builder

seit 2007

"Startup"

5 Millionen Registrations

12 Sprachen
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
Configuration Management

Wer kennt es?

Wie setzt ihr Server auf?

 ● Golden Image?
 ● Bash Script?
 ● Wiki?
 ● Tool?
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?
http://www.slideshare.net/socializedsoftware/crash-course-in-open-source-cloud-computing
Infrastructure as code




          http://www.puppetlabs.com/
ausführbare, testbare und versionierte
            Server-Dokumentation

Config-Deployment schnell, oft und reproduzierbar
seit 2004
eine deklarative, abstrakte DSL für Sysadmins, um
       Systemkonfiguration zu beschreiben
Idempotent




             f(x) = f(f(x))
Manifests
puppet classes

class webserver {
   package { "apache2":
      ensure => present, # apt-get etc.
   }
   file { "/etc/apache2/apache2.conf" :
      ensure => present
      source =>
         "puppet:///apache2/apache2.conf"
   }
}
puppet nodes

node "web" {
  $db_server = "db1"
   include webserver

}

node db1, db2, db3 {
    include mysql
}
Services

Modules (google: "puppet <package/daemon>")

           Variables, Templates

         Inheritance, zB bei Nodes
http://www.puppetlabs.com/puppet/how-puppet-works/
Client / Server
?

Questions so far ...
vagrant - even the logo is cool!




    www.vagrantup.com - kudos to Mitchell Hashimto
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?
Soll-Zustand
(Businessanforderungen)
vagrant to the rescue!
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")
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
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?)
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.
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)
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)!
==

Hardware        Software
Workflow(s)

vagrant init
vagrant up
vagrant reload
vagrant provision
vagrant ssh
vagrant halt
vagrant destroy
NO! ZOMG ACTION!!11
Action!


soenke♥kellerautomat:~$ gem install vagrant
beyond ...

               Vagrant -> Cloud: mccloud

 (https://github.com/jedi4ever/mccloud (by Patrick Debois -
                   father of devopsdays!))


         cucumber-nagios: Ecosystem as Code


  cucumber-puppet: Behavior Driven Administration

More Related Content

What's hot

WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektWebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
OPITZ CONSULTING Deutschland
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
inovex GmbH
 
OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!
Tobias Schneck
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloaded
René Winkelmeyer
 

What's hot (20)

2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
2012 borys neselovskyi_automatisierte_middleware_installation_praesentation
 
Deploy Magento Shops with Capistrano v3
Deploy Magento Shops with Capistrano  v3Deploy Magento Shops with Capistrano  v3
Deploy Magento Shops with Capistrano v3
 
Fix & fertig: Best Practises für "XPages-Migranten"
Fix & fertig: Best Practises für "XPages-Migranten"Fix & fertig: Best Practises für "XPages-Migranten"
Fix & fertig: Best Practises für "XPages-Migranten"
 
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem KundenprojektWebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
WebLogic Server auf ODA: Erfahrungen aus einem Kundenprojekt
 
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
 
Was ist neu in .NET 4.5?
Was ist neu in .NET 4.5?Was ist neu in .NET 4.5?
Was ist neu in .NET 4.5?
 
Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!
 
Gameduell Glassfish Migration
Gameduell Glassfish MigrationGameduell Glassfish Migration
Gameduell Glassfish Migration
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Best Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in ContainernBest Practices 
Java und JVM in Containern
Best Practices 
Java und JVM in Containern
 
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
Das dreckige Dutzend - ADF Migration nach 12c in der IKB - DOAG 2014.
 
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagra...
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascript
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows Container
 
OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!
 
Java magazin9 2012_wls 12c_das_dutzend_ist_voll
Java magazin9 2012_wls 12c_das_dutzend_ist_vollJava magazin9 2012_wls 12c_das_dutzend_ist_voll
Java magazin9 2012_wls 12c_das_dutzend_ist_voll
 
Arquillian
ArquillianArquillian
Arquillian
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloaded
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 

Similar to Einführung in Puppet und Vagrant

Entwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HHEntwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HH
Florian Holzhauer
 
Virtualisierung 2008/2009 - eine Standorbestimmung
Virtualisierung 2008/2009 - eine StandorbestimmungVirtualisierung 2008/2009 - eine Standorbestimmung
Virtualisierung 2008/2009 - eine Standorbestimmung
Henning Sprang
 

Similar to Einführung in Puppet und Vagrant (20)

Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Entwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HHEntwicklung mit Chef und Vagrant - PHPUG HH
Entwicklung mit Chef und Vagrant - PHPUG HH
 
Vagrant
VagrantVagrant
Vagrant
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center ManagementOpensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
 
Virtualisierung 2008/2009 - eine Standorbestimmung
Virtualisierung 2008/2009 - eine StandorbestimmungVirtualisierung 2008/2009 - eine Standorbestimmung
Virtualisierung 2008/2009 - eine Standorbestimmung
 
BED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als EntwicklerBED-Con - Tools für den täglichen Kampf als Entwickler
BED-Con - Tools für den täglichen Kampf als Entwickler
 
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
OSMC 2008 | Programmierung von Nagios-Plugins für NetApp Speichergeräte by In...
 
Rex - Infrastruktur als Code
Rex - Infrastruktur als CodeRex - Infrastruktur als Code
Rex - Infrastruktur als Code
 
Vagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & Verwendung
 
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application VirtualizationDesktop Containers 12: Next Generation of ZENworks Application Virtualization
Desktop Containers 12: Next Generation of ZENworks Application Virtualization
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
 
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
 
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
GitLab: CI-Pipelines | PHP Usergroup Hamburg 20.03.2018
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit Maven
 
Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?Maven2 - Die nächste Generation des Buildmanagements?
Maven2 - Die nächste Generation des Buildmanagements?
 
Dnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyondDnug35 ak-dev.071111-beyond
Dnug35 ak-dev.071111-beyond
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007
 

Einführung in Puppet und Vagrant