systemmanagement mit puppet und foreman
TRANSCRIPT
Systemmanagement mit Puppet undForemanCeBIT 2015 19. März 2015
Mattias GieseSystem Management & Monitoring Architect
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 / 53
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 / 53
Überblick über verwendete Komponenten
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 4 / 53
Verwendete Komponenten
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 5 / 53
Foreman Kurzvorstellung
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 6 / 53
Foreman 1/2
System Lifecycle Management SoftwareBenutzung via Web-UI/CLI/Restful APImodular aufgebautkann DHCP/DNS/TFTP/Puppet/Puppet CA verwaltenteilweise Support von Chef (Reports)Zukunft: Support von cfengine
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 7 / 53
Foreman 2/2
Provisionierung von virtuellen Maschinen (libvirt, VMWare)Cloud: AWS, OpenStack, GCE, oVirt, RHEVSteuerung von iLO/DRAC/andereinstallierbar auf RHEL/Fedora/Debian/Ubuntu
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 8 / 53
Foreman Architektur
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 9 / 53
Foreman – Komponenten
erweiterbar durch PluginsForeman Discovery: Metal as a ServiceHooks: Beliebigen Code in verschiedenen Phasen ausführen
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 10 / 53
Foreman Discovery
besteht aus zwei TeilenPlugin für Foreman Web-ApplikationLivesystem basierend auf oVirt-Node
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 11 / 53
Foreman GUI: Dashboard
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 12 / 53
Foreman GUI: Hosts Overview
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 13 / 53
Foreman GUI: Hosts Detail
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 14 / 53
Foreman GUI: Puppet Overview
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 15 / 53
Foreman GUI: Puppet Reports Overview
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 16 / 53
Foreman GUI: Puppet Report Detail
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 17 / 53
Foreman GUI: Puppet Classes Overview
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 18 / 53
Icinga Kurzvorstellung
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 19 / 53
Icinga
Fork des Monitoringsystems Nagios (2009)Kompatibel mit Nagios-Konfiguration und Pluginsverbessertes CGI Interface sowie neue Oberfläche Icinga-Webzusätzliche Bugfixes und Features, die nicht in Nagiosaufgenommen wurden
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 20 / 53
Icinga CGI GUI: Services
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 21 / 53
Icinga CGI GUI: Hosts Down
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 22 / 53
Logstash Kurzvorstellung
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 23 / 53
Logstash 1/2
komplette Log-Infrastrukturunterstützt eine Vielzahl von Protokollformaten durch Filtereinfach zu implementieren
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 24 / 53
Logstash 2/2
benutzt Elasticsearch für Datenhaltungskaliert horizontal (Indexer, Elasticsearch, Redis)Kibana3 ist eine sehr flexible GUI zur Visualisierung der Logs
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 25 / 53
Logstash Inputs
file: Normale Dateisyslog: lauscht auf Port 514 und kann somit Ziel von
rsyslog/syslog-ng usw. seinlumberjack: Input für eigenen Transportmechanismus
(logstash-forwarder). . .
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 26 / 53
Logstash Filters
grok: Regexes auf Steroiden. Vorgefertigte Pattern erleichterndie Benutzung von Regex
mutate: Log nachträglich anpassengeoip: z. B. das Land zu einer IP-Adresse im Log herausfinden.
. . .
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 27 / 53
Logstash Outputs
elasticsearch: Empfohlen für Produktiveinsatz (und für Kibana)file: In Datei schreiben
graphite: Output nach Graphite für Graphing. . .
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 28 / 53
Kibana3: Log Search and Filters
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 29 / 53
Kibana3: IRC Log Example
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 30 / 53
Kibana3: Twitter Example mit Geo-IP
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 31 / 53
Puppet Kurzvorstellung
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 32 / 53
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 33 / 53
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 GmbHSystemmanagement mit Puppet und
Foreman 34 / 53
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 35 / 53
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
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 36 / 53
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 37 / 53
Einstieg in PuppetDB
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 38 / 53
PuppetDB
Data Warehouse für PuppetAblösung für altes storeconfigs KonzeptDeduplizierung der gesammelten Datenbietet Restful-API für AbfragenAnwendungsfall: Exportierte RessourcenWeb-UI: PuppetBoard
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 39 / 53
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 40 / 53
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 41 / 53
PuppetDB
Anwenden der exportierten Ressourcen# Collect all exported monitoring resourcesif $::monitoring_server == $::fqdn {
Nagios_Host<<| |>> {}Nagios_Service<<| |>> {}
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 42 / 53
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 43 / 53
PuppetDB Dashboard 1/2
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 44 / 53
PuppetDB Dashboard 2/2
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 45 / 53
Spacewalk Kurzvorstellung
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 46 / 53
Spacewalk Kurzvorstellung
System Lifecycle Management Software (2002)Grundlage für RH Satellite bis 5.x und SUSE Managerseit 2008 offenes Software Projekt (GPL2)unterstützt RHEL/SUSE (und Derivate), teilweiseDebian/Ubuntu (nur Softwareverwaltung)
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 47 / 53
Spacewalk Features 1/2
Provisionierung von Systemen (Anbindung an Cobbler)Steuerung von Hypervisoren (KVM/Xen)Softwaremanagement mit ChannelstrukturStaging (Einfrieren bestimmter Versionsstände)einfache KonfigurationsverwaltungAusführung von Skripten auf verwalteten Maschinen
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 48 / 53
Spacewalk Features 2/2
zeitgesteuerte Ausführung von AufgabenMonitoring„Verwaltung“ von Crashes (abrt)OpenSCAP Einbindung (Software-Auditing)Bedienung durch Web-UI/CLI/XMLRPC-API
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 49 / 53
Spacewalk: GUI Overview
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 50 / 53
Spacewalk: System Details
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 51 / 53
Spacewalk: Channel Overview
B1 Systems GmbHSystemmanagement mit Puppet und
Foreman 52 / 53
Vielen Dank für Ihre Aufmerksamkeit!
Bei weiteren Fragen wenden Sie sich bitte an [email protected] +49 (0)8457 - 931096.
Besuchen Sie uns auch hier auf der CeBIT,Halle 6, H16/312.
B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development