Lifecycle Management mit Puppet und
Foreman
Continuous Lifecycle 2016 16. November 2016
Mattias Giese
System Management & Monitoring Architect
B1 Systems GmbH
giese@b1-systems.de
B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development
Vorstellung B1 Systems
gegründet 2004
primär Linux/Open Source-Themen
national & international tätig
fast 100 Mitarbeiter
unabhängig von Soft- und Hardware-Herstellern
Leistungsangebot:
Beratung & Consulting
Support
Entwicklung
Training
Betrieb
Lösungen
dezentrale Strukturen
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 2/43
Schwerpunkte
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 3/43
Puppet Kurzvorstellung
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 4/43
Puppet 1/2
Konfigurationsverwaltungssystem
Entwicklung seit 2005 durch Puppet Labs
eine der drei „Großen“ neben cfengine/Chef
unterstützt verschiedene Unixe/Linux, Windows
Community und Enterprise Variante
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 5/43
Puppet 2/2
implementiert eine Modellsprache auf Ruby
wir beschreiben, was getan werden soll, nicht wie
führt nur benötigte Änderungen am System durch
abstrahiert Unterschiede zwischen
Distributionen/Betriebssystemen
dynamische Konfiguration basierend auf Hardware/Softwareinfo
(facter)
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 6/43
Einfaches Manifest
Einfaches Manifest
file{’/etc/myservice.conf’:
ensure => present,
content => "Hallo Weltn",
owner => ’root’,
group => ’root’,
mode => ’644’,
}
package{’firefox’:
ensure => present,
}
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 7/43
Abstraktion des Codes
Ressource: Datei, Paket, Dienst, Benutzer, Gruppe, usw.
Manifest: Datei mit Endung .pp
enthält ein oder mehrere Ressourcen
Anwendung: puppet apply myconfig.pp
Klassen bündeln Ressourcen, z.B.: Paket, Datei und Dienst
Module bündeln Klassen und weitere Dateien
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 8/43
Einfache Klasse
Einfache 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
Deployment-Szenarios
Puppet benötigt keinen zentralen Server (apply)
Puppet Master als zentrale Einheit erleichtert Datenhaltung
zentrale Dienste können genutzt werden um Konfiguration für
Systeme vorzugeben (Foreman)
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 10/43
Foreman Vorstellung
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 11/43
Foreman
System Lifecycle Management Software
Benutzung via Web-UI/CLI/Restful API
Verwaltung von DHCP/DNS/TFTP/Puppet und mehr
modular aufgebaut, erweiterbar durch Plugins
Rollenbasiertes Zugriffskonzept macht Self-Service Portal
möglich
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 12/43
Foreman Architektur
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 13/43
Foreman Architektur
Provisionierung
Bare-Metal via PXE/Bootmedium
VM Deployment auf vSphere, libvirt, ovirt (RHEV)
Cloud: GCE, EC2, Rackspace, OpenStack, DigitalOcean
Infrastruktur
DHCP: ISC DHCPD, Microsoft DHCP Server
DNS: Bind, PowerDNS, Microsoft DNS
TFTP (verschiedene)
verschiedene Konfigurationsverwaltungen
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 14/43
Foreman GUI: Dashboard
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 15/43
Foreman GUI: Hosts Overview
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 16/43
Foreman GUI: Hosts Detail
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 17/43
Foreman GUI: Puppet Overview
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 18/43
Foreman GUI: Puppet Reports Overview
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 19/43
Foreman GUI: Puppet Report Detail
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 20/43
Foreman GUI: Puppet Classes Overview
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 21/43
Foreman – Plugins
erweiterbar durch Plugins
Foreman Discovery: Metal as a Service
Remote Execution: Tasks auf verwalteten Maschinen ausführen
Docker: Verwaltung von Containern auf Docker-Hosts
Hooks: Beliebigen Code in verschiedenen Phasen ausführen
Chef, Ansible, Salt: Anbindung von Konfigurationsverwaltung
neben Puppet
Katello: 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
Foreman Discovery 1/4
besteht aus zwei Teilen
Plugin für Foreman Web-Applikation
Livesystem basierend auf oVirt-Node
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 23/43
Foreman Discovery 2/4
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 24/43
Foreman Discovery 3/4
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 25/43
Foreman Discovery 4/4
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 26/43
Foreman Remote Execution 1/9
Foreman
Scheduler (Foreman Tasks/Dynflow)
Frontend für Templatedefinition
Frontend zur Taskplanung
Foreman Proxy
Executor Plugin (aktuell nur SSH)
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 27/43
Foreman Remote Execution 2/9
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 28/43
Foreman Remote Execution 3/9
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 29/43
Foreman Remote Execution 4/9
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 30/43
Foreman Remote Execution 5/9
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 31/43
Foreman Remote Execution 6/9
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 32/43
Foreman Remote Execution 7/9
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 33/43
Foreman Remote Execution 8/9
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 34/43
Foreman Remote Execution 9/9
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 35/43
Foreman Docker Plugin 1/7
Docker wird zur Compute Resource in Foreman
Erstellung, Anzeige und Verwaltung von Containern auf
verschiedenen Docker-Hosts
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 36/43
Foreman Docker Plugin 2/7
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 37/43
Foreman Docker Plugin 3/7
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 38/43
Foreman Docker Plugin 4/7
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 39/43
Foreman Docker Plugin 5/7
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 40/43
Foreman Docker Plugin 6/7
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 41/43
Foreman Docker Plugin 7/7
B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 42/43
Vielen Dank für Ihre Aufmerksamkeit!
Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de
oder +49 (0)8457 - 931096
B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development

Lifecycle Management mit Puppet und Foreman

  • 1.
    Lifecycle Management mitPuppet und Foreman Continuous Lifecycle 2016 16. November 2016 Mattias Giese System Management & Monitoring Architect B1 Systems GmbH giese@b1-systems.de B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development
  • 2.
    Vorstellung B1 Systems gegründet2004 primär Linux/Open Source-Themen national & international tätig fast 100 Mitarbeiter unabhängig von Soft- und Hardware-Herstellern Leistungsangebot: Beratung & Consulting Support Entwicklung Training Betrieb Lösungen dezentrale Strukturen B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 2/43
  • 3.
    Schwerpunkte B1 Systems GmbHLifecycle Management mit Puppet und Foreman 3/43
  • 4.
    Puppet Kurzvorstellung B1 SystemsGmbH Lifecycle Management mit Puppet und Foreman 4/43
  • 5.
    Puppet 1/2 Konfigurationsverwaltungssystem Entwicklung seit2005 durch Puppet Labs eine der drei „Großen“ neben cfengine/Chef unterstützt verschiedene Unixe/Linux, Windows Community und Enterprise Variante B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 5/43
  • 6.
    Puppet 2/2 implementiert eineModellsprache auf Ruby wir beschreiben, was getan werden soll, nicht wie führt nur benötigte Änderungen am System durch abstrahiert Unterschiede zwischen Distributionen/Betriebssystemen dynamische Konfiguration basierend auf Hardware/Softwareinfo (facter) B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 6/43
  • 7.
    Einfaches Manifest Einfaches Manifest file{’/etc/myservice.conf’: ensure=> present, content => "Hallo Weltn", owner => ’root’, group => ’root’, mode => ’644’, } package{’firefox’: ensure => present, } B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 7/43
  • 8.
    Abstraktion des Codes Ressource:Datei, Paket, Dienst, Benutzer, Gruppe, usw. Manifest: Datei mit Endung .pp enthält ein oder mehrere Ressourcen Anwendung: puppet apply myconfig.pp Klassen bündeln Ressourcen, z.B.: Paket, Datei und Dienst Module bündeln Klassen und weitere Dateien B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 8/43
  • 9.
    Einfache Klasse Einfache Klasse classsshserver() { 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
  • 10.
    Deployment-Szenarios Puppet benötigt keinenzentralen Server (apply) Puppet Master als zentrale Einheit erleichtert Datenhaltung zentrale Dienste können genutzt werden um Konfiguration für Systeme vorzugeben (Foreman) B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 10/43
  • 11.
    Foreman Vorstellung B1 SystemsGmbH Lifecycle Management mit Puppet und Foreman 11/43
  • 12.
    Foreman System Lifecycle ManagementSoftware Benutzung via Web-UI/CLI/Restful API Verwaltung von DHCP/DNS/TFTP/Puppet und mehr modular aufgebaut, erweiterbar durch Plugins Rollenbasiertes Zugriffskonzept macht Self-Service Portal möglich B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 12/43
  • 13.
    Foreman Architektur B1 SystemsGmbH Lifecycle Management mit Puppet und Foreman 13/43
  • 14.
    Foreman Architektur Provisionierung Bare-Metal viaPXE/Bootmedium VM Deployment auf vSphere, libvirt, ovirt (RHEV) Cloud: GCE, EC2, Rackspace, OpenStack, DigitalOcean Infrastruktur DHCP: ISC DHCPD, Microsoft DHCP Server DNS: Bind, PowerDNS, Microsoft DNS TFTP (verschiedene) verschiedene Konfigurationsverwaltungen B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 14/43
  • 15.
    Foreman GUI: Dashboard B1Systems GmbH Lifecycle Management mit Puppet und Foreman 15/43
  • 16.
    Foreman GUI: HostsOverview B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 16/43
  • 17.
    Foreman GUI: HostsDetail B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 17/43
  • 18.
    Foreman GUI: PuppetOverview B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 18/43
  • 19.
    Foreman GUI: PuppetReports Overview B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 19/43
  • 20.
    Foreman GUI: PuppetReport Detail B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 20/43
  • 21.
    Foreman GUI: PuppetClasses Overview B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 21/43
  • 22.
    Foreman – Plugins erweiterbardurch Plugins Foreman Discovery: Metal as a Service Remote Execution: Tasks auf verwalteten Maschinen ausführen Docker: Verwaltung von Containern auf Docker-Hosts Hooks: Beliebigen Code in verschiedenen Phasen ausführen Chef, Ansible, Salt: Anbindung von Konfigurationsverwaltung neben Puppet Katello: 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
  • 23.
    Foreman Discovery 1/4 bestehtaus zwei Teilen Plugin für Foreman Web-Applikation Livesystem basierend auf oVirt-Node B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 23/43
  • 24.
    Foreman Discovery 2/4 B1Systems GmbH Lifecycle Management mit Puppet und Foreman 24/43
  • 25.
    Foreman Discovery 3/4 B1Systems GmbH Lifecycle Management mit Puppet und Foreman 25/43
  • 26.
    Foreman Discovery 4/4 B1Systems GmbH Lifecycle Management mit Puppet und Foreman 26/43
  • 27.
    Foreman Remote Execution1/9 Foreman Scheduler (Foreman Tasks/Dynflow) Frontend für Templatedefinition Frontend zur Taskplanung Foreman Proxy Executor Plugin (aktuell nur SSH) B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 27/43
  • 28.
    Foreman Remote Execution2/9 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 28/43
  • 29.
    Foreman Remote Execution3/9 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 29/43
  • 30.
    Foreman Remote Execution4/9 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 30/43
  • 31.
    Foreman Remote Execution5/9 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 31/43
  • 32.
    Foreman Remote Execution6/9 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 32/43
  • 33.
    Foreman Remote Execution7/9 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 33/43
  • 34.
    Foreman Remote Execution8/9 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 34/43
  • 35.
    Foreman Remote Execution9/9 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 35/43
  • 36.
    Foreman Docker Plugin1/7 Docker wird zur Compute Resource in Foreman Erstellung, Anzeige und Verwaltung von Containern auf verschiedenen Docker-Hosts B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 36/43
  • 37.
    Foreman Docker Plugin2/7 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 37/43
  • 38.
    Foreman Docker Plugin3/7 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 38/43
  • 39.
    Foreman Docker Plugin4/7 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 39/43
  • 40.
    Foreman Docker Plugin5/7 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 40/43
  • 41.
    Foreman Docker Plugin6/7 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 41/43
  • 42.
    Foreman Docker Plugin7/7 B1 Systems GmbH Lifecycle Management mit Puppet und Foreman 42/43
  • 43.
    Vielen Dank fürIhre Aufmerksamkeit! Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de oder +49 (0)8457 - 931096 B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development