system- & konfigurationsmanagement mit foreman & puppet

54
Systemmanagement mit Puppet und Foreman CommitterConf Essen 2014 28.10.2014 Ralph Dehner Gründer & CEO B1 Systems GmbH [email protected] B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Upload: b1-systems-gmbh

Post on 12-Jul-2015

184 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: System- & Konfigurationsmanagement mit Foreman & Puppet

Systemmanagement mit Puppet undForemanCommitterConf Essen 2014 28.10.2014

Ralph DehnerGründer & CEO

B1 Systems [email protected]

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

Page 2: System- & Konfigurationsmanagement mit Foreman & Puppet

Vorstellung B1 Systems

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

Beratung & ConsultingSupportEntwicklungTrainingBetriebLösungen

dezentrale Strukturen

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 2 / 54

Page 3: System- & Konfigurationsmanagement mit Foreman & Puppet

SchwerpunkteVirtualisierung (XEN, KVM & RHEV)Systemmanagement (Spacewalk, Red Hat Satellite, SUSEManager)Konfigurationsmanagement (Puppet & Chef)Monitoring (Nagios & Icinga)IaaS Cloud (OpenStack & SUSE Cloud & RDO)Hochverfügbarkeit (Pacemaker)Shared Storage (GPFS, OCFS2, DRBD & CEPH)Dateiaustausch (ownCloud)Paketierung (Open Build Service)Administratoren oder Entwickler zur Unterstützung des Teamsvor Ort

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 3 / 54

Page 4: System- & Konfigurationsmanagement mit Foreman & Puppet

Partner

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 4 / 54

Page 5: System- & Konfigurationsmanagement mit Foreman & Puppet

Überblick über verwendete Komponenten

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 5 / 54

Page 6: System- & Konfigurationsmanagement mit Foreman & Puppet

Verwendete Komponenten

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 6 / 54

Page 7: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman Kurzvorstellung

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 7 / 54

Page 8: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman 1/2

Lebenszyklusverwaltung von Computernmodular aufgebautverwaltet DHCP/DNS/TFTP/Puppet/Puppet CAteilweise Support von Chef (Reports)Zukunft: Support von cfengineAnbindung an verschiedene Hypervisoren

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 8 / 54

Page 9: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman 2/2

Cloud: AWS, OpenStack via Fog BibliothekSteuerung von iLO/DRAC/andereinstallierbar auf RHEL/Fedora/Debian/UbuntuWeb-UI/CLI/Restful API

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 9 / 54

Page 10: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman Architektur

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 10 / 54

Page 11: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman – Komponenten

erweiterbar durch PluginsForeman Discovery: Metal as a ServiceHooks: Beliebigen Code in verschiedenen Phasen ausführen

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 11 / 54

Page 12: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman Discovery

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

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 12 / 54

Page 13: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman GUI: Overview 1/2

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 13 / 54

Page 14: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman GUI: Overview 2/2

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 14 / 54

Page 15: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman GUI: Hosts Overview

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 15 / 54

Page 16: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman GUI: Hosts Detail

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 16 / 54

Page 17: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman GUI: Puppet Reports Overview

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 17 / 54

Page 18: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman GUI: Puppet Report Detail

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 18 / 54

Page 19: System- & Konfigurationsmanagement mit Foreman & Puppet

Foreman GUI: Puppet Classes Overview

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 19 / 54

Page 20: System- & Konfigurationsmanagement mit Foreman & Puppet

Icinga Kurzvorstellung

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 20 / 54

Page 21: System- & Konfigurationsmanagement mit Foreman & Puppet

Icinga

Fork des Monitoringsystems Nagioswurde von Netways und anderen Entwicklern 2009 initiiertKompatibel mit Nagios Konfiguration und Pluginsverbessertes CGI Interface sowie neue Oberfläche Icinga-Webviele Bugfixes und Features, die nicht in Nagios aufgenommenwurdenIcinga2 (Rewrite von Icinga) ist der "Nachfolger"

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 21 / 54

Page 22: System- & Konfigurationsmanagement mit Foreman & Puppet

Icinga CGI GUI: Services

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 22 / 54

Page 23: System- & Konfigurationsmanagement mit Foreman & Puppet

Icinga CGI GUI: Hosts Down

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 23 / 54

Page 24: System- & Konfigurationsmanagement mit Foreman & Puppet

Logstash Kurzvorstellung

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 24 / 54

Page 25: System- & Konfigurationsmanagement mit Foreman & Puppet

Logstash 1/2

Komplette Log InfrastrukturÜnterstützt eine Vielzahl von Protokollformaten durch Filterimplementiert in JRubyeinfach zu implementieren (All-in-One Jar File)

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 25 / 54

Page 26: System- & Konfigurationsmanagement mit Foreman & Puppet

Logstash 2/2

benutzt Elasticsearch für Datenhaltungskaliert horizontal (Indexer, Elasticsearch, Redis)Kibana3 ist eine sehr flexible und hübsche GUI zur Visualisierungder Logs

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 26 / 54

Page 27: System- & Konfigurationsmanagement mit Foreman & Puppet

Logstash Inputs

file: Normale Dateisyslog: lauscht auf Port 514 und kann somit Ziel vonrsyslog/syslog-ng usw. seinlumberjack: Input für eigenen Transportmechanismus(logstash-forwarder). . .

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 27 / 54

Page 28: System- & Konfigurationsmanagement mit Foreman & Puppet

Logstash Filters

grok: Regexes auf Steroiden. Vorgefertigte Pattern erleichterndie Benutzung von Regexmutate: Log nachtäglich anpassengeoip: z.B. das Land zu einer IP-Adresse im Log herausfinden.. . .

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 28 / 54

Page 29: System- & Konfigurationsmanagement mit Foreman & Puppet

Logstash Outputs

elasticsearch: Empfohlen für Produktiveinsatz (und für Kibana)file: In Datei schreibengraphite: Output nach Graphite für Graphing. . .

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 29 / 54

Page 30: System- & Konfigurationsmanagement mit Foreman & Puppet

Kibana3: Log Search and Filters

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 30 / 54

Page 31: System- & Konfigurationsmanagement mit Foreman & Puppet

Kibana3: IRC Log Example

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 31 / 54

Page 32: System- & Konfigurationsmanagement mit Foreman & Puppet

Kibana3: Twitter Example mit Geo-IP

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 32 / 54

Page 33: System- & Konfigurationsmanagement mit Foreman & Puppet

Puppet Kurzvorstellung

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 33 / 54

Page 34: System- & Konfigurationsmanagement mit Foreman & Puppet

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 GmbHSystemmanagement mit Puppet und

Foreman 34 / 54

Page 35: System- & Konfigurationsmanagement mit Foreman & Puppet

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)erweiterbar durch eigenen Code

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 35 / 54

Page 36: System- & Konfigurationsmanagement mit Foreman & Puppet

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 GmbHSystemmanagement mit Puppet und

Foreman 36 / 54

Page 37: System- & Konfigurationsmanagement mit Foreman & Puppet

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 KlassenReihenfolge muss explizit definiert werden (nicht unbedingtnötig seit 3.x)

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 37 / 54

Page 38: System- & Konfigurationsmanagement mit Foreman & Puppet

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 GmbHSystemmanagement mit Puppet und

Foreman 38 / 54

Page 39: System- & Konfigurationsmanagement mit Foreman & Puppet

Einstieg in PuppetDB

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 39 / 54

Page 40: System- & Konfigurationsmanagement mit Foreman & Puppet

PuppetDB

Data Warehouse für PuppetAblösung für altes storeconfigs Konzeptimplementiert in Clojure (Lisp in Java)bietet Restful-API für AbfragenAnwendungsfall: Exportierte RessourcenJunge Web-UI: PuppetBoard

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 40 / 54

Page 41: System- & Konfigurationsmanagement mit Foreman & Puppet

PuppetDB

Exportierte Ressourcen am Beispiel von MonitoringRessourcen werden auf den zu überwachenden Systemeneingesammelt (exportiert)exportierte Ressourcen werden in PuppetDB gespeichertexportierte Ressourcen werden dann auf dem Monitoringsystem(Icinga) angewendet

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 41 / 54

Page 42: System- & Konfigurationsmanagement mit Foreman & Puppet

PuppetDB

Exportierte Nagios Host Ressource@@nagios_host{"nagios_${::hostname}":

ensure => present,address => "$::ipaddress",host_name => "$::fqdn",check_command => ’check_ping!100.0,20%!500.0,60%’,display_name => "$::fqdn",max_check_attempts => ’3’,use => ’generic-host’,target => \

"/etc/icinga/conf.d/service_ssh_${::hostname}.cfg",}

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 42 / 54

Page 43: System- & Konfigurationsmanagement mit Foreman & Puppet

PuppetDB

Anwenden der exportierten Ressourcen# Collect all exported monitoring resourcesif $::monitoring_server == $::fqdn {

Nagios_Host<<| |>> {notify => Exec[’fix-icinga-conf-permissions’],

}Nagios_Service<<| |>> {

notify => Exec[’fix-icinga-conf-permissions’],}

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 43 / 54

Page 44: System- & Konfigurationsmanagement mit Foreman & Puppet

Beispielabfragen

BeispielabfragenAlle Nodes mit Debian["and",

["=", "name", "operatingsystem"],["=", "value", "Debian"]]

Uptime zwischen ca. 28h und ca. 12d["and",

["=", "name", "uptime_seconds"],[">=", "value", 100000],["<", "value", 1000000]]

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 44 / 54

Page 45: System- & Konfigurationsmanagement mit Foreman & Puppet

PuppetDB Dashboard 1/2

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 45 / 54

Page 46: System- & Konfigurationsmanagement mit Foreman & Puppet

PuppetDB Dashboard 2/2

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 46 / 54

Page 47: System- & Konfigurationsmanagement mit Foreman & Puppet

Spacewalk Kurzvorstellung

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 47 / 54

Page 48: System- & Konfigurationsmanagement mit Foreman & Puppet

Spacewalk Kurzvorstellung

System Lifecycle Management SoftwareGrundlage für RH Satellite bis 5.x/SUSE ManagerEntwicklung durch Red Hat und Andere seit 2002 (EinführungRHN)seit 2008 offenes Software Projekt (GPL2)unterstützt RHEL/SUSE (und Derivate), teilweiseDebian/Ubuntu (nur Softwareverwaltung)

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 48 / 54

Page 49: System- & Konfigurationsmanagement mit Foreman & Puppet

Spacewalk Features 1/2

Provisionierung von Systemen (Anbindung an Cobbler)Softwaremanagement mit ChannelstrukturSubskriptionsverwaltung (Satellite/SUSE Manager)Staging (Einfrieren bestimmter Versionsstände)einfache KonfigurationsverwaltungAusführung von Skripten auf verwalteten Maschinen

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 49 / 54

Page 50: System- & Konfigurationsmanagement mit Foreman & Puppet

Spacewalk Features 2/2

Monitoring„Verwaltung“ von Crashes (abrt)OpenSCAP Einbindung (Software-Auditing)Bedienung durch Web-UI/CLI/XMLRPC-API

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 50 / 54

Page 51: System- & Konfigurationsmanagement mit Foreman & Puppet

Spacewalk: GUI Overview

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 51 / 54

Page 52: System- & Konfigurationsmanagement mit Foreman & Puppet

Spacewalk: System Details

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 52 / 54

Page 53: System- & Konfigurationsmanagement mit Foreman & Puppet

Spacewalk: Channel Overview

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 53 / 54

Page 54: System- & Konfigurationsmanagement mit Foreman & Puppet

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