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
Jul 12, 2015
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
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
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
Überblick über verwendete Komponenten
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 5 / 54
Verwendete Komponenten
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 6 / 54
Foreman Kurzvorstellung
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 7 / 54
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
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
Foreman Architektur
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 10 / 54
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
Foreman Discovery
besteht aus zwei TeilenPlugin für Foreman Web-ApplikationLivesystem basierend auf oVirt-Node
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 12 / 54
Foreman GUI: Overview 1/2
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 13 / 54
Foreman GUI: Overview 2/2
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 14 / 54
Foreman GUI: Hosts Overview
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 15 / 54
Foreman GUI: Hosts Detail
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 16 / 54
Foreman GUI: Puppet Reports Overview
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 17 / 54
Foreman GUI: Puppet Report Detail
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 18 / 54
Foreman GUI: Puppet Classes Overview
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 19 / 54
Icinga Kurzvorstellung
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 20 / 54
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
Icinga CGI GUI: Services
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 22 / 54
Icinga CGI GUI: Hosts Down
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 23 / 54
Logstash Kurzvorstellung
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 24 / 54
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
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
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
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
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
Kibana3: Log Search and Filters
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 30 / 54
Kibana3: IRC Log Example
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 31 / 54
Kibana3: Twitter Example mit Geo-IP
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 32 / 54
Puppet Kurzvorstellung
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 33 / 54
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
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
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
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
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
Einstieg in PuppetDB
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 39 / 54
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
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
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
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
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
PuppetDB Dashboard 1/2
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 45 / 54
PuppetDB Dashboard 2/2
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 46 / 54
Spacewalk Kurzvorstellung
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 47 / 54
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
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
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
Spacewalk: GUI Overview
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 51 / 54
Spacewalk: System Details
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 52 / 54
Spacewalk: Channel Overview
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 53 / 54
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