SlideShare ist ein Scribd-Unternehmen logo
IT Engineering – Continuous Delivery
Development Tool Chain
Virtualisierung, Packer, Vagrant und Puppet
Alexander Pacnik
Karlsruhe, 20.05.2014
2
Ziele
‣  Continuous Delivery – einfache, atomare Änderungen sollten immer möglich sein
Voraussetzung
‣  Dev/Prod Parity – Werkzeuge und Prozesse der Umgebungen identisch halten
‣  Vollständige Automatisierung der Prozesse und Tests
‣  Infrastructure as Code
Einleitung
... worum es in diesem Vortrag geht
3
Problemstellung
‣  Entwicklungsumgebung für Operations zur Verfügung stellen
‣  Entwicklungsumgebung für Development zur Verfügung stellen
‣  Ein (!) Tool pro Aufgabe festlegen – heute Image Verwaltung mit Packer
‣  Entscheidungskriterien : Wer nutzt es? Wie wird es verwendet?
‣  Teil der DoD und für alle Beteiligten verbindlich
Einleitung
... worum es in diesem Vortrag geht
Virtualisierung
4
Virtualisierung
... die Basis für unsere Boxen
Development
Environments
(Vagrant)
Image
Creation
(Packer)
Hands-on
Code
5
VirtualBox
‣  Virtualisierungslösung die auf OSX, Linux und Windows funktioniert
‣  Vorteil: nur ein Host Betriebssystem das berücksichtigt / getestet werden muss
‣  Console: VBoxManage
‣  Installation: Installer
Quellen
‣  VirtualBox: https://www.virtualbox.org
Virtualisierung
... mit VirtualBox
6
VMware Fusion
‣  Virtualisierungslösung für OSX
‣  Vorteil: Bessere Integration in die VMware Welt
‣  Console: vmrun (steuern) und ovftool (konvertieren)
‣  Installation: Installer
Quellen
‣  VMware Fusion: http://www.vmware.com/de/products/fusion
‣  VMware Tools Versionen: http://packages.vmware.com/tools/versions
‣  OVF Tool: https://www.vmware.com/support/developer/ovf/
Virtualisierung
... mit VMware Fusion
Virtualisierung
(VirtualBox)
7
Image Bauen
... mit Packer
Development
Environments
(Vagrant)
Image
Creation
(Packer)
Hands-on
Code
http://www.packer.io/intro/index.html 8
Was ist Packer?
‣  Packer is an open source tool for creating identical machine images for multiple
platforms from a single source configuration.
Image Bauen
... eine Einführung
http://www.packer.io/intro/index.html 9
Installation
‣  Archiv herunterladen und auspacken
‣  Binaries in den PATH aufnehmen
Image Bauen
... einfache Installation
http://www.packer.io/docs/basics/terminology.html 10
Terminologie
‣  Artifacts – das Ergebnis eines Builds (Image)
‣  Templates – JSON Datei die die ganze Konfiguration enthält
‣  Builders – Konfiguration für eine bestimmte Plattform (Virtualbox, AWS, ...)
‣  Post-processors – Schritte nach einem Build (Artefakte hochladen / komprimieren)
‣  Provisioners - installieren Software in die laufende VM (Shell, Puppet, Chef, ...)
‣  Kickstart / Preseeding – Konfigurationsdatei für die OS Installation
Image Bauen
... die wichtigsten Begriffe
http://www.packer.io/docs/templates/configuration-templates.html 11
Templates
‣  Alles zwischen { ... } in der JSON Datei
‣  {{.VAR}} Variablen beginnen mit einem Punkt und werden groß geschrieben
‣  {{timestamp}} build-in Funktionen werden klein geschrieben
Image Bauen
... Templates schreiben
http://www.packer.io/docs/templates/configuration-templates.html 12
Variablen in Templates
‣  Werden in einen "variables": { ... } eingeschlossen, Definition: “key“: “value“
‣  Value = ““ entspricht einer Variable die optional übergeben werden kann
‣  Value = null führ zu einem Validate-Fehler wenn die nicht gesetzt wird
‣  Im Template werden sie wie folgt verwendet: "{{user `key`}}“
‣  Umgebungsvariablen können auch ausgelesen werden: "{{env `LANG`}}
‣  Variablen können über die CMD übergeben oder aus einer Datei ausgelesen werden
‣  Beispiel:
Image Bauen
... Templates schreiben
13
Provisioners
‣  Starten Skripte (Shell, Puppet, ...) in der laufenden VM
‣  Können auf Builds eingeschränkt werden (nur für Vagrant ausführen, etc)
‣  Können für einzelne Builds überschrieben werden um Unterschiede abzubilden
Image Bauen
... Provisioners
14
Debugging
‣  Viele Builder unterstützen "headless": "false“
‣  Am Ende der Skripte ein Sleep einbauen und SSH in die Maschine
‣  Umgebungsvariable PACKER_LOG auf irgendeinen Wert setzen
Image Bauen
... Debugging wenn Fehler auftreten
15
Beispiel:
Image Bauen
... Debugging wenn Fehler auftreten
Virtualisierung
(VirtualBox)
16
Development Environments
... das Image einfach nutzbar machen
Development
Environments
(Vagrant)
Image
Creation
(Packer)
Hands-on
Workflow
17
Vagrant
‣  Verwaltung virtueller Entwicklungsumgebungen
‣  Vorteil: einfach ganze lokale Umgebungen als Code zu beschreiben und zu teilen
‣  Console: vagrant
‣  Installation: Installer
Quellen
‣  Vagrant: http://www.vagrantup.com
Development Environments
... das Image einfach nutzbar machen
18
Beispiel: Vagrantfile
Development Environments
... das Image einfach nutzbar machen
Virtualisierung
(VirtualBox)
19
Hands-on
... der Workflow
Development
Environments
(Vagrant)
Image
Creation
(Packer)
Hands-on
Code
20
Übersicht
Hands-on
... die Verzeichnisstruktur
21
Konfigurationen prüfen und ggf. anpassen
‣  Umgebung: build_images/conf/build_images.properties
‣  Template: build_images/templates/centos/centos65-config.json
‣  Kickstart: build_images/templates/centos/public_html/centos6.cfg
Hands-on
... die Konfiguration für unsere Box anpassen
22
Antfile
‣  Optional: Bash Funktion erstellen um Antfiles direkt ausführen zu können
‣  $EDITOR ~/.profle
Hands-on
... die Arbeit mit Ant vereinfachen
23
Antfile
‣  die wichtigsten Actions
Hands-on
... der Workflow im Überblick
24
Download
‣  Die ISOs die in den Templates verwendet werden konfigurieren
build_images/conf/images.conf
‣  Konfigurierte ISOs herunterladen
‣  Anschließend die md5 Summe berechnen und in der Konfiguration eintragen
build_images/templates/centos/centos65-config.json
Hands-on
... das ISO für die Installation herunterladen
25
packer validate
‣  JSON Datei auf syntaktische Korrektheit prüfen
Hands-on
... Syntax prüfen
26
packer inspect
‣  Elemente und Konfiguration der JSON Datei anzeigen
Hands-on
... die Konfiguration anzeigen
27
Kickstart / Preseeding
‣  Passend zum Projekt die Kickstart / Preseeding Datei anpassen
‣  OS Version
‣  Sprache und Zeitzone
‣  Partitionierungsschema
‣  ...
‣  Beispiel: build_images/templates/centos/public_html/centos6.cfg
Hands-on
... die Konfiguration anzeigen
28
packer build
‣  Box mit angegeben Typ bauen und optional Puppet ausführen
Hands-on
... die Box bauen
29
Skripte
‣  Die Basisinstallation nach Kickstart / Preseeding erfolgt mit Shell Skripten
‣  Beispielsweise alles für den ersten Puppet Run vorbereiten
Hands-on
... die laufende VM konfigurieren
30
Konventionen für das Verwenden von Puppet
‣  Packer liegt unter build_images/
‣  Puppet Module liegen unter configuration/modules/
‣  Hieradata liegt unter configuration/hieradata/
‣  Modul das angewendet werden soll hat ein Manifest unter tests/init.pp
‣  Der Packer Code: scripts/puppet_apply.sh
Hands-on
... eine mögliche Puppet Integration
31
list
‣  Alle Vagrant Boxen im „work/cache_boxes“ Verzeichnis anzeigen
Hands-on
... Boxen anzeigen und ...
32
publish_local
‣  Die angegebene Box lokal (vagrant add) hinzufügen
Hands-on
... Box lokal Vagrant bekannt machen oder ...
33
publish_remote
‣  Die angegebene via scp hochladen
Hands-on
... Box auf einen Webserver für Vagrant ablegen
34
vmware2ova / vbox2ova
‣  Box-Datei aufräumen, so dass ein Standard konformes OVA entsteht
‣  vbox2ova: metadata.json aus box entfernen
‣  vmware2ova: box mit OVF Tool konvertieren
‣  Die Datei kann dann in eine Virtualisierungslösung importiert werden
Hands-on
... Box konvertieren um sie ohne Vagrant verwenden zu können
35
Box testen
1.  VirtualBox / VMware Fusion – OVA Datei importieren (UI oder Console)
2.  Mit Vagrant die Box nach dem publish_local testen
Hands-on
... um die Übersicht zu behalten
36
Fazit
‣  Entwicklungsmaschinen so nah wie möglich an den produktiven bauen
‣  Immer ein Image für Engineering Tests bereit halten (minimales Golden Image)
‣  Entwicklern immer ein Image für die Entwicklung zur Verfügung stellen
‣  Erfolgskriterium: Wenn die Vagrant Box und das Deployment Tool von Dev
verwendet wird, haben wir die richtige Lösung gefunden.
‣  Überall die gleichen Tools für Configuration und Deployment verwenden
‣  Die einfachste Lösung verwenden die funktioniert
Hands-on
... um die Übersicht zu behalten
37
Next Steps
1.  Tools installieren
2.  Beispiel aus unserem Git Server clonen
3.  Skripte ausprobieren, Beteiligung an der Weiterentwicklung erwünscht! J
4.  Dokumentation der Tools vollständig lesen!
Hands-on
... um die Übersicht zu behalten
38
Vielen Dank für Ihre Aufmerksamkeit
Kontakt
Alexander Pacnik
IT Engineering & Operations
Project Management
inovex GmbH
Ludwig-Erhard-Allee 6
76133 Karlsruhe
Mobil: +49 (0)173 3181 040
Mail: alexander.pacnik@inovex.de
Anhang
40
Quellen
‣  VirtualBox
https://www.virtualbox.org/wiki/Documentation
‣  VMware Fusion
http://www.vmware.com/de/products/fusion
‣  Packer
http://www.packer.io/docs
‣  Vagrant
http://docs.vagrantup.com/v2/
Lizenz des Vortrags
‣  Creative Commons (by-nc-nd)
Anhang
... wo sie in Ruhe nachlesen können

Weitere ähnliche Inhalte

Was ist angesagt?

Deploy Magento Shops with Capistrano v3
Deploy Magento Shops with Capistrano  v3Deploy Magento Shops with Capistrano  v3
Deploy Magento Shops with Capistrano v3
Roman Hutterer
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedRené Winkelmeyer
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
QAware GmbH
 
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael ProkopOSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
NETWAYS
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
B1 Systems GmbH
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Steffen Gebert
 
Einstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetEinstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSet
Ralf Abramowitsch
 
Vagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & Verwendung
Tilo Baller
 
Ant im Detail
Ant im DetailAnt im Detail
Ant im Detail
Jörn Dinkla
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Gregor Biswanger
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
Ulrich Gerkmann-Bartels
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
Fabian Lange
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Gregor Biswanger
 
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
Christian Mücke
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemacht
B1 Systems GmbH
 
docker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easy
inovex GmbH
 
oVirt 3.5 - Einführung und Evaluierungsergebnisse
oVirt 3.5 - Einführung und EvaluierungsergebnisseoVirt 3.5 - Einführung und Evaluierungsergebnisse
oVirt 3.5 - Einführung und Evaluierungsergebnisse
inovex GmbH
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
inovex GmbH
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
Nicholas Dille
 
C++ Dependency Management 2.0
C++ Dependency Management 2.0C++ Dependency Management 2.0
C++ Dependency Management 2.0
Patrick Charrier
 

Was ist angesagt? (20)

Deploy Magento Shops with Capistrano v3
Deploy Magento Shops with Capistrano  v3Deploy Magento Shops with Capistrano  v3
Deploy Magento Shops with Capistrano v3
 
EntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloadedEntwicklerCamp 2014 - DOTS reloaded
EntwicklerCamp 2014 - DOTS reloaded
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael ProkopOSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Einstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetEinstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSet
 
Vagrant - Einführung & Verwendung
Vagrant - Einführung & VerwendungVagrant - Einführung & Verwendung
Vagrant - Einführung & Verwendung
 
Ant im Detail
Ant im DetailAnt im Detail
Ant im Detail
 
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreElectron.NET: Cross-Platform Desktop Software mit ASP.NET Core
Electron.NET: Cross-Platform Desktop Software mit ASP.NET Core
 
Was ist Docker ?
Was ist Docker ?Was ist Docker ?
Was ist Docker ?
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
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
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemacht
 
docker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easy
 
oVirt 3.5 - Einführung und Evaluierungsergebnisse
oVirt 3.5 - Einführung und EvaluierungsergebnisseoVirt 3.5 - Einführung und Evaluierungsergebnisse
oVirt 3.5 - Einführung und Evaluierungsergebnisse
 
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
Docker Security - Architektur und Sicherheitsfunktionen von Containervirtuali...
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
C++ Dependency Management 2.0
C++ Dependency Management 2.0C++ Dependency Management 2.0
C++ Dependency Management 2.0
 

Andere mochten auch

Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
inovex GmbH
 
Berlin studie schulstrukturreform
Berlin studie schulstrukturreformBerlin studie schulstrukturreform
Berlin studie schulstrukturreformPeteWee
 
Einführung in Opscode Chef - Voraussetzungen
Einführung in Opscode Chef - VoraussetzungenEinführung in Opscode Chef - Voraussetzungen
Einführung in Opscode Chef - Voraussetzungen
Avarteq
 
Eléments essentiels de la convention entre actionnaires Nov 2009
Eléments essentiels de la convention entre actionnaires Nov 2009Eléments essentiels de la convention entre actionnaires Nov 2009
Eléments essentiels de la convention entre actionnaires Nov 2009
SDruker
 
Peças Gráficas para divulgação do espetáculo "Quando Efe"
Peças Gráficas para divulgação do espetáculo "Quando Efe"Peças Gráficas para divulgação do espetáculo "Quando Efe"
Peças Gráficas para divulgação do espetáculo "Quando Efe"
Alegria Design
 
Talkfusion power point afiliacao
Talkfusion power point afiliacaoTalkfusion power point afiliacao
Talkfusion power point afiliacao
Talkfusion Vídeo e Comunicação
 
Empreendimento Fusion Construtora Leduca
Empreendimento Fusion Construtora LeducaEmpreendimento Fusion Construtora Leduca
Empreendimento Fusion Construtora Leduca
Guimororo
 
Fusion Work Live Mall
Fusion Work Live MallFusion Work Live Mall
Fusion Work Live Mall
SuporteaoCorretor
 
Fusion Work Live Office
Fusion Work Live OfficeFusion Work Live Office
Fusion Work Live Office
SuporteaoCorretor
 
Plano de Compensação
Plano de CompensaçãoPlano de Compensação
Plano de Compensação
Talk Fusion
 
Immobilier : ne baissez pas la garde - Empruntis.com / Conférence de presse d...
Immobilier : ne baissez pas la garde - Empruntis.com / Conférence de presse d...Immobilier : ne baissez pas la garde - Empruntis.com / Conférence de presse d...
Immobilier : ne baissez pas la garde - Empruntis.com / Conférence de presse d...
Empruntis
 
Les outils publics salon 2011
Les outils publics salon 2011Les outils publics salon 2011
Les outils publics salon 2011
impulse.brussels
 
Flash OFI Risk Arb Absolu 13-05-14
Flash OFI Risk Arb Absolu 13-05-14Flash OFI Risk Arb Absolu 13-05-14
Flash OFI Risk Arb Absolu 13-05-14OFI Asset Management
 
Frischr - IHK Erfurt Gastvortrag Social Media April 2010
Frischr - IHK Erfurt Gastvortrag Social Media April 2010Frischr - IHK Erfurt Gastvortrag Social Media April 2010
Frischr - IHK Erfurt Gastvortrag Social Media April 2010
Hannes Mehring
 
Veille de Né Kid 080206
Veille de Né Kid 080206Veille de Né Kid 080206
Veille de Né Kid 080206
Nicolas Bard
 
Fusion Office Tower - Lojas e Salas Comerciais - Pechincha
 Fusion Office Tower - Lojas e Salas Comerciais - Pechincha Fusion Office Tower - Lojas e Salas Comerciais - Pechincha
Fusion Office Tower - Lojas e Salas Comerciais - Pechincha
Antonio Neto
 
Verdi Broschüre "Aktiv gegen Rechts!"
Verdi Broschüre "Aktiv gegen Rechts!"Verdi Broschüre "Aktiv gegen Rechts!"
Verdi Broschüre "Aktiv gegen Rechts!"
NMS-RT
 
Apresentação artesanato
Apresentação artesanatoApresentação artesanato
Apresentação artesanato
Graça Cardona
 
Speed Creation Fusion Modeling Pohle Krause
Speed Creation Fusion Modeling Pohle KrauseSpeed Creation Fusion Modeling Pohle Krause
Speed Creation Fusion Modeling Pohle Krause
Sven Krause
 
The Ultimate Guide to Folded Self-Mailers
The Ultimate Guide to Folded Self-MailersThe Ultimate Guide to Folded Self-Mailers
The Ultimate Guide to Folded Self-Mailers
mags2005
 

Andere mochten auch (20)

Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
 
Berlin studie schulstrukturreform
Berlin studie schulstrukturreformBerlin studie schulstrukturreform
Berlin studie schulstrukturreform
 
Einführung in Opscode Chef - Voraussetzungen
Einführung in Opscode Chef - VoraussetzungenEinführung in Opscode Chef - Voraussetzungen
Einführung in Opscode Chef - Voraussetzungen
 
Eléments essentiels de la convention entre actionnaires Nov 2009
Eléments essentiels de la convention entre actionnaires Nov 2009Eléments essentiels de la convention entre actionnaires Nov 2009
Eléments essentiels de la convention entre actionnaires Nov 2009
 
Peças Gráficas para divulgação do espetáculo "Quando Efe"
Peças Gráficas para divulgação do espetáculo "Quando Efe"Peças Gráficas para divulgação do espetáculo "Quando Efe"
Peças Gráficas para divulgação do espetáculo "Quando Efe"
 
Talkfusion power point afiliacao
Talkfusion power point afiliacaoTalkfusion power point afiliacao
Talkfusion power point afiliacao
 
Empreendimento Fusion Construtora Leduca
Empreendimento Fusion Construtora LeducaEmpreendimento Fusion Construtora Leduca
Empreendimento Fusion Construtora Leduca
 
Fusion Work Live Mall
Fusion Work Live MallFusion Work Live Mall
Fusion Work Live Mall
 
Fusion Work Live Office
Fusion Work Live OfficeFusion Work Live Office
Fusion Work Live Office
 
Plano de Compensação
Plano de CompensaçãoPlano de Compensação
Plano de Compensação
 
Immobilier : ne baissez pas la garde - Empruntis.com / Conférence de presse d...
Immobilier : ne baissez pas la garde - Empruntis.com / Conférence de presse d...Immobilier : ne baissez pas la garde - Empruntis.com / Conférence de presse d...
Immobilier : ne baissez pas la garde - Empruntis.com / Conférence de presse d...
 
Les outils publics salon 2011
Les outils publics salon 2011Les outils publics salon 2011
Les outils publics salon 2011
 
Flash OFI Risk Arb Absolu 13-05-14
Flash OFI Risk Arb Absolu 13-05-14Flash OFI Risk Arb Absolu 13-05-14
Flash OFI Risk Arb Absolu 13-05-14
 
Frischr - IHK Erfurt Gastvortrag Social Media April 2010
Frischr - IHK Erfurt Gastvortrag Social Media April 2010Frischr - IHK Erfurt Gastvortrag Social Media April 2010
Frischr - IHK Erfurt Gastvortrag Social Media April 2010
 
Veille de Né Kid 080206
Veille de Né Kid 080206Veille de Né Kid 080206
Veille de Né Kid 080206
 
Fusion Office Tower - Lojas e Salas Comerciais - Pechincha
 Fusion Office Tower - Lojas e Salas Comerciais - Pechincha Fusion Office Tower - Lojas e Salas Comerciais - Pechincha
Fusion Office Tower - Lojas e Salas Comerciais - Pechincha
 
Verdi Broschüre "Aktiv gegen Rechts!"
Verdi Broschüre "Aktiv gegen Rechts!"Verdi Broschüre "Aktiv gegen Rechts!"
Verdi Broschüre "Aktiv gegen Rechts!"
 
Apresentação artesanato
Apresentação artesanatoApresentação artesanato
Apresentação artesanato
 
Speed Creation Fusion Modeling Pohle Krause
Speed Creation Fusion Modeling Pohle KrauseSpeed Creation Fusion Modeling Pohle Krause
Speed Creation Fusion Modeling Pohle Krause
 
The Ultimate Guide to Folded Self-Mailers
The Ultimate Guide to Folded Self-MailersThe Ultimate Guide to Folded Self-Mailers
The Ultimate Guide to Folded Self-Mailers
 

Ähnlich wie Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagrant und Puppet

Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrants0enke
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)
Joachim Baumann
 
Serverprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen InfrastrukturServerprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen Infrastrukturinovex 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
inovex GmbH
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python Development
Martin Christen
 
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
GWAVA
 
Vagrant
VagrantVagrant
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
Christian Colbach
 
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 HHFlorian Holzhauer
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
Hendrik Lösch
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
Josef Adersberger
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
B1 Systems GmbH
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
QAware GmbH
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows Container
Thomas Wilhelm Wiefel
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-Universum
Nicholas Dille
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
remigius-stalder
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
GFU Cyrus AG
 
Augmented Reality Workshop
Augmented Reality WorkshopAugmented Reality Workshop
Augmented Reality Workshop
argency
 
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?
Digicomp Academy AG
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Docker
gedoplan
 

Ähnlich wie Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagrant und Puppet (20)

Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
 
Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)Gradle - Beginner's Workshop (german)
Gradle - Beginner's Workshop (german)
 
Serverprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen InfrastrukturServerprovisioning in einer dynamischen Infrastruktur
Serverprovisioning in einer dynamischen Infrastruktur
 
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
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python Development
 
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
 
Vagrant
VagrantVagrant
Vagrant
 
Einführung in Docker
Einführung in DockerEinführung in Docker
Einführung in Docker
 
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
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
 
Docker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-PatternsDocker und Kubernetes Patterns & Anti-Patterns
Docker und Kubernetes Patterns & Anti-Patterns
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Docker for Windows / Windows Container
Docker for Windows / Windows ContainerDocker for Windows / Windows Container
Docker for Windows / Windows Container
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-Universum
 
Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17Infrastructure as Code - BaselOne 17
Infrastructure as Code - BaselOne 17
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Augmented Reality Workshop
Augmented Reality WorkshopAugmented Reality Workshop
Augmented Reality Workshop
 
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?
 
Hendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit DockerHendrik Jungnitsch: Software verpacken mit Docker
Hendrik Jungnitsch: Software verpacken mit Docker
 

Mehr von inovex GmbH

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
inovex GmbH
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
inovex GmbH
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
inovex GmbH
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
inovex GmbH
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
inovex GmbH
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
inovex GmbH
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
inovex GmbH
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
inovex GmbH
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
inovex GmbH
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
inovex GmbH
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
inovex GmbH
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
inovex GmbH
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
inovex GmbH
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
inovex GmbH
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
inovex GmbH
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
inovex GmbH
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
inovex GmbH
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
inovex GmbH
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
inovex GmbH
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
inovex GmbH
 

Mehr von inovex GmbH (20)

lldb – Debugger auf Abwegen
lldb – Debugger auf Abwegenlldb – Debugger auf Abwegen
lldb – Debugger auf Abwegen
 
Are you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AIAre you sure about that?! Uncertainty Quantification in AI
Are you sure about that?! Uncertainty Quantification in AI
 
Why natural language is next step in the AI evolution
Why natural language is next step in the AI evolutionWhy natural language is next step in the AI evolution
Why natural language is next step in the AI evolution
 
WWDC 2019 Recap
WWDC 2019 RecapWWDC 2019 Recap
WWDC 2019 Recap
 
Network Policies
Network PoliciesNetwork Policies
Network Policies
 
Interpretable Machine Learning
Interpretable Machine LearningInterpretable Machine Learning
Interpretable Machine Learning
 
Jenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen UmgebungenJenkins X – CI/CD in wolkigen Umgebungen
Jenkins X – CI/CD in wolkigen Umgebungen
 
AI auf Edge-Geraeten
AI auf Edge-GeraetenAI auf Edge-Geraeten
AI auf Edge-Geraeten
 
Prometheus on Kubernetes
Prometheus on KubernetesPrometheus on Kubernetes
Prometheus on Kubernetes
 
Deep Learning for Recommender Systems
Deep Learning for Recommender SystemsDeep Learning for Recommender Systems
Deep Learning for Recommender Systems
 
Azure IoT Edge
Azure IoT EdgeAzure IoT Edge
Azure IoT Edge
 
Representation Learning von Zeitreihen
Representation Learning von ZeitreihenRepresentation Learning von Zeitreihen
Representation Learning von Zeitreihen
 
Talk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale AssistentenTalk to me – Chatbots und digitale Assistenten
Talk to me – Chatbots und digitale Assistenten
 
Künstlich intelligent?
Künstlich intelligent?Künstlich intelligent?
Künstlich intelligent?
 
Dev + Ops = Go
Dev + Ops = GoDev + Ops = Go
Dev + Ops = Go
 
Das Android Open Source Project
Das Android Open Source ProjectDas Android Open Source Project
Das Android Open Source Project
 
Machine Learning Interpretability
Machine Learning InterpretabilityMachine Learning Interpretability
Machine Learning Interpretability
 
Performance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use casePerformance evaluation of GANs in a semisupervised OCR use case
Performance evaluation of GANs in a semisupervised OCR use case
 
People & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madnessPeople & Products – Lessons learned from the daily IT madness
People & Products – Lessons learned from the daily IT madness
 
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with PulumiInfrastructure as (real) Code – Manage your K8s resources with Pulumi
Infrastructure as (real) Code – Manage your K8s resources with Pulumi
 

Continuous Delivery - Development Tool Chain - Virtualisierung, Packer, Vagrant und Puppet

  • 1. IT Engineering – Continuous Delivery Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet Alexander Pacnik Karlsruhe, 20.05.2014
  • 2. 2 Ziele ‣  Continuous Delivery – einfache, atomare Änderungen sollten immer möglich sein Voraussetzung ‣  Dev/Prod Parity – Werkzeuge und Prozesse der Umgebungen identisch halten ‣  Vollständige Automatisierung der Prozesse und Tests ‣  Infrastructure as Code Einleitung ... worum es in diesem Vortrag geht
  • 3. 3 Problemstellung ‣  Entwicklungsumgebung für Operations zur Verfügung stellen ‣  Entwicklungsumgebung für Development zur Verfügung stellen ‣  Ein (!) Tool pro Aufgabe festlegen – heute Image Verwaltung mit Packer ‣  Entscheidungskriterien : Wer nutzt es? Wie wird es verwendet? ‣  Teil der DoD und für alle Beteiligten verbindlich Einleitung ... worum es in diesem Vortrag geht
  • 4. Virtualisierung 4 Virtualisierung ... die Basis für unsere Boxen Development Environments (Vagrant) Image Creation (Packer) Hands-on Code
  • 5. 5 VirtualBox ‣  Virtualisierungslösung die auf OSX, Linux und Windows funktioniert ‣  Vorteil: nur ein Host Betriebssystem das berücksichtigt / getestet werden muss ‣  Console: VBoxManage ‣  Installation: Installer Quellen ‣  VirtualBox: https://www.virtualbox.org Virtualisierung ... mit VirtualBox
  • 6. 6 VMware Fusion ‣  Virtualisierungslösung für OSX ‣  Vorteil: Bessere Integration in die VMware Welt ‣  Console: vmrun (steuern) und ovftool (konvertieren) ‣  Installation: Installer Quellen ‣  VMware Fusion: http://www.vmware.com/de/products/fusion ‣  VMware Tools Versionen: http://packages.vmware.com/tools/versions ‣  OVF Tool: https://www.vmware.com/support/developer/ovf/ Virtualisierung ... mit VMware Fusion
  • 7. Virtualisierung (VirtualBox) 7 Image Bauen ... mit Packer Development Environments (Vagrant) Image Creation (Packer) Hands-on Code
  • 8. http://www.packer.io/intro/index.html 8 Was ist Packer? ‣  Packer is an open source tool for creating identical machine images for multiple platforms from a single source configuration. Image Bauen ... eine Einführung
  • 9. http://www.packer.io/intro/index.html 9 Installation ‣  Archiv herunterladen und auspacken ‣  Binaries in den PATH aufnehmen Image Bauen ... einfache Installation
  • 10. http://www.packer.io/docs/basics/terminology.html 10 Terminologie ‣  Artifacts – das Ergebnis eines Builds (Image) ‣  Templates – JSON Datei die die ganze Konfiguration enthält ‣  Builders – Konfiguration für eine bestimmte Plattform (Virtualbox, AWS, ...) ‣  Post-processors – Schritte nach einem Build (Artefakte hochladen / komprimieren) ‣  Provisioners - installieren Software in die laufende VM (Shell, Puppet, Chef, ...) ‣  Kickstart / Preseeding – Konfigurationsdatei für die OS Installation Image Bauen ... die wichtigsten Begriffe
  • 11. http://www.packer.io/docs/templates/configuration-templates.html 11 Templates ‣  Alles zwischen { ... } in der JSON Datei ‣  {{.VAR}} Variablen beginnen mit einem Punkt und werden groß geschrieben ‣  {{timestamp}} build-in Funktionen werden klein geschrieben Image Bauen ... Templates schreiben
  • 12. http://www.packer.io/docs/templates/configuration-templates.html 12 Variablen in Templates ‣  Werden in einen "variables": { ... } eingeschlossen, Definition: “key“: “value“ ‣  Value = ““ entspricht einer Variable die optional übergeben werden kann ‣  Value = null führ zu einem Validate-Fehler wenn die nicht gesetzt wird ‣  Im Template werden sie wie folgt verwendet: "{{user `key`}}“ ‣  Umgebungsvariablen können auch ausgelesen werden: "{{env `LANG`}} ‣  Variablen können über die CMD übergeben oder aus einer Datei ausgelesen werden ‣  Beispiel: Image Bauen ... Templates schreiben
  • 13. 13 Provisioners ‣  Starten Skripte (Shell, Puppet, ...) in der laufenden VM ‣  Können auf Builds eingeschränkt werden (nur für Vagrant ausführen, etc) ‣  Können für einzelne Builds überschrieben werden um Unterschiede abzubilden Image Bauen ... Provisioners
  • 14. 14 Debugging ‣  Viele Builder unterstützen "headless": "false“ ‣  Am Ende der Skripte ein Sleep einbauen und SSH in die Maschine ‣  Umgebungsvariable PACKER_LOG auf irgendeinen Wert setzen Image Bauen ... Debugging wenn Fehler auftreten
  • 15. 15 Beispiel: Image Bauen ... Debugging wenn Fehler auftreten
  • 16. Virtualisierung (VirtualBox) 16 Development Environments ... das Image einfach nutzbar machen Development Environments (Vagrant) Image Creation (Packer) Hands-on Workflow
  • 17. 17 Vagrant ‣  Verwaltung virtueller Entwicklungsumgebungen ‣  Vorteil: einfach ganze lokale Umgebungen als Code zu beschreiben und zu teilen ‣  Console: vagrant ‣  Installation: Installer Quellen ‣  Vagrant: http://www.vagrantup.com Development Environments ... das Image einfach nutzbar machen
  • 18. 18 Beispiel: Vagrantfile Development Environments ... das Image einfach nutzbar machen
  • 21. 21 Konfigurationen prüfen und ggf. anpassen ‣  Umgebung: build_images/conf/build_images.properties ‣  Template: build_images/templates/centos/centos65-config.json ‣  Kickstart: build_images/templates/centos/public_html/centos6.cfg Hands-on ... die Konfiguration für unsere Box anpassen
  • 22. 22 Antfile ‣  Optional: Bash Funktion erstellen um Antfiles direkt ausführen zu können ‣  $EDITOR ~/.profle Hands-on ... die Arbeit mit Ant vereinfachen
  • 23. 23 Antfile ‣  die wichtigsten Actions Hands-on ... der Workflow im Überblick
  • 24. 24 Download ‣  Die ISOs die in den Templates verwendet werden konfigurieren build_images/conf/images.conf ‣  Konfigurierte ISOs herunterladen ‣  Anschließend die md5 Summe berechnen und in der Konfiguration eintragen build_images/templates/centos/centos65-config.json Hands-on ... das ISO für die Installation herunterladen
  • 25. 25 packer validate ‣  JSON Datei auf syntaktische Korrektheit prüfen Hands-on ... Syntax prüfen
  • 26. 26 packer inspect ‣  Elemente und Konfiguration der JSON Datei anzeigen Hands-on ... die Konfiguration anzeigen
  • 27. 27 Kickstart / Preseeding ‣  Passend zum Projekt die Kickstart / Preseeding Datei anpassen ‣  OS Version ‣  Sprache und Zeitzone ‣  Partitionierungsschema ‣  ... ‣  Beispiel: build_images/templates/centos/public_html/centos6.cfg Hands-on ... die Konfiguration anzeigen
  • 28. 28 packer build ‣  Box mit angegeben Typ bauen und optional Puppet ausführen Hands-on ... die Box bauen
  • 29. 29 Skripte ‣  Die Basisinstallation nach Kickstart / Preseeding erfolgt mit Shell Skripten ‣  Beispielsweise alles für den ersten Puppet Run vorbereiten Hands-on ... die laufende VM konfigurieren
  • 30. 30 Konventionen für das Verwenden von Puppet ‣  Packer liegt unter build_images/ ‣  Puppet Module liegen unter configuration/modules/ ‣  Hieradata liegt unter configuration/hieradata/ ‣  Modul das angewendet werden soll hat ein Manifest unter tests/init.pp ‣  Der Packer Code: scripts/puppet_apply.sh Hands-on ... eine mögliche Puppet Integration
  • 31. 31 list ‣  Alle Vagrant Boxen im „work/cache_boxes“ Verzeichnis anzeigen Hands-on ... Boxen anzeigen und ...
  • 32. 32 publish_local ‣  Die angegebene Box lokal (vagrant add) hinzufügen Hands-on ... Box lokal Vagrant bekannt machen oder ...
  • 33. 33 publish_remote ‣  Die angegebene via scp hochladen Hands-on ... Box auf einen Webserver für Vagrant ablegen
  • 34. 34 vmware2ova / vbox2ova ‣  Box-Datei aufräumen, so dass ein Standard konformes OVA entsteht ‣  vbox2ova: metadata.json aus box entfernen ‣  vmware2ova: box mit OVF Tool konvertieren ‣  Die Datei kann dann in eine Virtualisierungslösung importiert werden Hands-on ... Box konvertieren um sie ohne Vagrant verwenden zu können
  • 35. 35 Box testen 1.  VirtualBox / VMware Fusion – OVA Datei importieren (UI oder Console) 2.  Mit Vagrant die Box nach dem publish_local testen Hands-on ... um die Übersicht zu behalten
  • 36. 36 Fazit ‣  Entwicklungsmaschinen so nah wie möglich an den produktiven bauen ‣  Immer ein Image für Engineering Tests bereit halten (minimales Golden Image) ‣  Entwicklern immer ein Image für die Entwicklung zur Verfügung stellen ‣  Erfolgskriterium: Wenn die Vagrant Box und das Deployment Tool von Dev verwendet wird, haben wir die richtige Lösung gefunden. ‣  Überall die gleichen Tools für Configuration und Deployment verwenden ‣  Die einfachste Lösung verwenden die funktioniert Hands-on ... um die Übersicht zu behalten
  • 37. 37 Next Steps 1.  Tools installieren 2.  Beispiel aus unserem Git Server clonen 3.  Skripte ausprobieren, Beteiligung an der Weiterentwicklung erwünscht! J 4.  Dokumentation der Tools vollständig lesen! Hands-on ... um die Übersicht zu behalten
  • 38. 38 Vielen Dank für Ihre Aufmerksamkeit Kontakt Alexander Pacnik IT Engineering & Operations Project Management inovex GmbH Ludwig-Erhard-Allee 6 76133 Karlsruhe Mobil: +49 (0)173 3181 040 Mail: alexander.pacnik@inovex.de
  • 40. 40 Quellen ‣  VirtualBox https://www.virtualbox.org/wiki/Documentation ‣  VMware Fusion http://www.vmware.com/de/products/fusion ‣  Packer http://www.packer.io/docs ‣  Vagrant http://docs.vagrantup.com/v2/ Lizenz des Vortrags ‣  Creative Commons (by-nc-nd) Anhang ... wo sie in Ruhe nachlesen können