Systemmanagement mit Puppet und Foreman

Preview:

DESCRIPTION

Im heutigen IT-Alltag müssen neue Systeme innerhalb kürzester Zeit konfiguriert und verfügbar sein. Immer mehr Systeme werden von immer weniger Administratoren betreut. Werkzeuge zum Deployment und zum Konfigurationsmanagement bieten die nötige Automatisierung. Dieser Vortrag führt ein in das Systemmanagement mit Puppet und Foreman und zeigt beispielhaft, wie ein System frisch eingerichtet, konfiguriert und in eine Monitoringumgebung eingebunden wird.

Citation preview

Systemmanagement mit Puppet undForemanCLT 2014 16. März 2014

Mattias GieseSolution Architect for Systemsmanagement and Monitoring

B1 Systems GmbHgiese@b1-systems.de

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

Agenda

Vorstellung B1 Systems

Überblick über verwendete Komponenten

Foreman Kurzvorstellung

Puppet Kurzvorstellung

Spacewalk Kurzvorstellung

Einstieg in PuppetDB

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 2 / 31

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 3 / 31

SchwerpunkteVirtualisierung (XEN, KVM & RHEV)Systemmanagement (Spacewalk, Red Hat Satellite, SUSEManager)Konfigurationsmanagement (Puppet & Chef)Monitoring (Nagios & Icinga)IaaS Cloud (OpenStack & SUSE Cloud)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 4 / 31

Überblick über verwendete Komponenten

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 5 / 31

Verwendete Komponenten

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 6 / 31

Netzdiagramm

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 7 / 31

Foreman Kurzvorstellung

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 8 / 31

Foreman 1/2

Lebenszyklusverwaltung von Computernmodular aufgebautverwaltet DHCP/DNS/TFTP/Puppet/Puppet CAZukunft: cfengine/Chef und andereAnbindung an verschiedene Hypervisor

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 9 / 31

Foreman 2/2

Cloud: AWS, OpenStackSteuerung von iLO/DRAC/andereunterstützt RHEL/Fedora/Debian/UbuntuWeb-UI/CLI/Restful APIAlternativen: Cobbler, Razor, Rudder (cfengine)

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 10 / 31

Foreman Architektur

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 11 / 31

Foreman – Komponenten

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

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 12 / 31

Foreman Discovery

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

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 13 / 31

Demo: Metal as a Service

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 14 / 31

Puppet Kurzvorstellung

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 15 / 31

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 16 / 31

Puppet 2/2

implementiert eine Modellsprache auf Rubywir beschreiben was getan werden soll, nicht wieist idempotentabstrahiert Unterschiede zwischenDistributionen/Betriebssystemendynamische Konfiguration basierend auf Hardware/Softwareinfo(facter)erweiterbar durch eigenen Code

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 17 / 31

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 18 / 31

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 KlassenWichtig: Reihenfolge muss explizit definiert werden

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 19 / 31

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 20 / 31

Spacewalk Kurzvorstellung

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 21 / 31

Spacewalk Kurzvorstellung

System Lifecycle Management Software (Déjà-vu?)Grundlage für RH Satellite bis 5.x/SUSE ManagerEntwicklung durch Red Hat seit 2002 (Einführung RHN)seit 2008 offenes Software Projekt (GPL2)

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 22 / 31

Spacewalk Features 1/3

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 23 / 31

Spacewalk Features 2/3

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

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 24 / 31

Spacewalk Features 3/3

unterstützt RHEL/SUSE (und Derivate), teilweiseDebian/UbuntuAlternative (Softwareverwaltung): Katello/Pulp/Candlepin (nurRHEL/Fedora)Foreman/Katello/Pulp/Candlepin == Satellite 6

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 25 / 31

Demo: Spacewalk/Foreman/Icinga

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 26 / 31

Einstieg in PuppetDB

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 27 / 31

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 28 / 31

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 29 / 31

Demo: Puppetmanifeste und ExportedResources

B1 Systems GmbHSystemmanagement mit Puppet und

Foreman 30 / 31

Vielen Dank für Ihre Aufmerksamkeit!Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de

oder +49 (0)8457 - 931096

Zu diesem Vortrag gehörige Beispieldateien gibt es unter:https://github.com/mattiasgiese/foreman-clt

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

Recommended