Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman...

43
Lifecycle Management mit Puppet und Foreman Continuous Lifecycle 2016 16. November 2016 Mattias Giese System Management & Monitoring Architect B1 Systems GmbH [email protected] B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Transcript of Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman...

Page 1: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Lifecycle Management mit Puppet undForemanContinuous Lifecycle 2016 16. November 2016

Mattias GieseSystem Management & Monitoring Architect

B1 Systems [email protected]

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Page 2: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Vorstellung B1 Systems

gegründet 2004primär Linux/Open Source-Themennational & international tätigfast 100 Mitarbeiterunabhängig von Soft- und Hardware-HerstellernLeistungsangebot:

Beratung & ConsultingSupportEntwicklungTrainingBetriebLösungen

dezentrale Strukturen

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 2/43

Page 3: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Schwerpunkte

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 3/43

Page 4: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Puppet Kurzvorstellung

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 4/43

Page 5: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Puppet 1/2

KonfigurationsverwaltungssystemEntwicklung seit 2005 durch Puppet Labseine der drei „Großen“ neben cfengine/Chefunterstützt verschiedene Unixe/Linux, WindowsCommunity und Enterprise Variante

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 5/43

Page 6: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Puppet 2/2

implementiert eine Modellsprache auf Rubywir beschreiben, was getan werden soll, nicht wieführt nur benötigte Änderungen am System durchabstrahiert Unterschiede zwischenDistributionen/Betriebssystemendynamische Konfiguration basierend auf Hardware/Softwareinfo(facter)

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 6/43

Page 7: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Einfaches Manifest

Einfaches Manifestfile{’/etc/myservice.conf’:

ensure => present,content => "Hallo Welt\n",owner => ’root’,group => ’root’,mode => ’644’,

}package{’firefox’:

ensure => present,}

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 7/43

Page 8: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Abstraktion des Codes

Ressource: Datei, Paket, Dienst, Benutzer, Gruppe, usw.Manifest: Datei mit Endung .pp

enthält ein oder mehrere RessourcenAnwendung: puppet apply myconfig.pp

Klassen bündeln Ressourcen, z.B.: Paket, Datei und DienstModule bündeln Klassen und weitere Dateien

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 8/43

Page 9: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Einfache KlasseEinfache Klasse

class sshserver() {package{’openssh’:

ensure => present,}file{’/etc/ssh/sshd_config’:

ensure => present,source => puppet:///sshd_config,[...]notify => Service[’sshd’],require => Package[’openssh’],

}service{’sshd’,

ensure => running,enable => true,

}}

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 9/43

Page 10: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Deployment-Szenarios

Puppet benötigt keinen zentralen Server (apply)Puppet Master als zentrale Einheit erleichtert Datenhaltungzentrale Dienste können genutzt werden um Konfiguration fürSysteme vorzugeben (Foreman)

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 10/43

Page 11: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Vorstellung

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 11/43

Page 12: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman

System Lifecycle Management SoftwareBenutzung via Web-UI/CLI/Restful APIVerwaltung von DHCP/DNS/TFTP/Puppet und mehrmodular aufgebaut, erweiterbar durch PluginsRollenbasiertes Zugriffskonzept macht Self-Service Portalmöglich

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 12/43

Page 13: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Architektur

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 13/43

Page 14: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Architektur

ProvisionierungBare-Metal via PXE/BootmediumVM Deployment auf vSphere, libvirt, ovirt (RHEV)Cloud: GCE, EC2, Rackspace, OpenStack, DigitalOcean

InfrastrukturDHCP: ISC DHCPD, Microsoft DHCP ServerDNS: Bind, PowerDNS, Microsoft DNSTFTP (verschiedene)verschiedene Konfigurationsverwaltungen

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 14/43

Page 15: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman GUI: Dashboard

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 15/43

Page 16: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman GUI: Hosts Overview

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 16/43

Page 17: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman GUI: Hosts Detail

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 17/43

Page 18: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman GUI: Puppet Overview

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 18/43

Page 19: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman GUI: Puppet Reports Overview

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 19/43

Page 20: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman GUI: Puppet Report Detail

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 20/43

Page 21: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman GUI: Puppet Classes Overview

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 21/43

Page 22: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman – Plugins

erweiterbar durch PluginsForeman Discovery: Metal as a ServiceRemote Execution: Tasks auf verwalteten Maschinen ausführenDocker: Verwaltung von Containern auf Docker-HostsHooks: Beliebigen Code in verschiedenen Phasen ausführenChef, Ansible, Salt: Anbindung von Konfigurationsverwaltungneben PuppetKatello: Software-/Patchmanagent (Basis für Satellite 6)u.v.m., siehe http://theforeman.org/plugins/

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 22/43

Page 23: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Discovery 1/4

besteht aus zwei TeilenPlugin für Foreman Web-ApplikationLivesystem basierend auf oVirt-Node

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 23/43

Page 24: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Discovery 2/4

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 24/43

Page 25: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Discovery 3/4

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 25/43

Page 26: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Discovery 4/4

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 26/43

Page 27: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Remote Execution 1/9

ForemanScheduler (Foreman Tasks/Dynflow)Frontend für TemplatedefinitionFrontend zur Taskplanung

Foreman ProxyExecutor Plugin (aktuell nur SSH)

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 27/43

Page 28: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Remote Execution 2/9

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 28/43

Page 29: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Remote Execution 3/9

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 29/43

Page 30: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Remote Execution 4/9

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 30/43

Page 31: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Remote Execution 5/9

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 31/43

Page 32: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Remote Execution 6/9

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 32/43

Page 33: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Remote Execution 7/9

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 33/43

Page 34: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Remote Execution 8/9

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 34/43

Page 35: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Remote Execution 9/9

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 35/43

Page 36: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Docker Plugin 1/7

Docker wird zur Compute Resource in ForemanErstellung, Anzeige und Verwaltung von Containern aufverschiedenen Docker-Hosts

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 36/43

Page 37: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Docker Plugin 2/7

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 37/43

Page 38: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Docker Plugin 3/7

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 38/43

Page 39: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Docker Plugin 4/7

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 39/43

Page 40: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Docker Plugin 5/7

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 40/43

Page 41: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Docker Plugin 6/7

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 41/43

Page 42: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Foreman Docker Plugin 7/7

B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 42/43

Page 43: Lifecycle Management mit Puppet und Foreman · Lifecycle Management mit Puppet und Foreman ContinuousLifecycle201616.November2016 Mattias Giese System Management & Monitoring Architect

Vielen Dank für Ihre Aufmerksamkeit!Bei weiteren Fragen wenden Sie sich bitte an [email protected]

oder +49 (0)8457 - 931096

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development