Suche senden
Hochladen
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
•
1 gefällt mir
•
490 views
SpeedPartner GmbH
Folgen
Date: 2012-09-13 Location: Hamburg, Germany Event: GUUG Hamburg
Weniger lesen
Mehr lesen
Melden
Teilen
Melden
Teilen
1 von 33
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
Diccionario
Diccionario
Gina Paola Lopez Rodriguez
Los mayas
Los mayas
Jhoncito Espinoza Huaman
ialci press release for Tranoi Men and Preview - Paris - January 2016
ialci press release for Tranoi Men and Preview - Paris - January 2016
Annabelle Gauberti
Kannst du Liebe deine Feinde? (German)
Kannst du Liebe deine Feinde? (German)
Hitoshi Tsuchiyama
Powerstrips
Powerstrips
Powerstrips
Empfohlen
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
SpeedPartner GmbH
Diccionario
Diccionario
Gina Paola Lopez Rodriguez
Los mayas
Los mayas
Jhoncito Espinoza Huaman
ialci press release for Tranoi Men and Preview - Paris - January 2016
ialci press release for Tranoi Men and Preview - Paris - January 2016
Annabelle Gauberti
Kannst du Liebe deine Feinde? (German)
Kannst du Liebe deine Feinde? (German)
Hitoshi Tsuchiyama
Powerstrips
Powerstrips
Powerstrips
Technology road map
Technology road map
Emile Shaul
Bewusstsein (German)
Bewusstsein (German)
Hitoshi Tsuchiyama
Apple
Apple
Luis Xavier
New microsoft power point presentation
New microsoft power point presentation
Khorshed Imran
Las profesiones 6 sınıf
Las profesiones 6 sınıf
profesorasofiak
El caso de dragon mart
El caso de dragon mart
Frida Prado Gonzalez
Los oficios 2º
Los oficios 2º
Yenny Zujeyli De La Cruz Valenzuela
Sociedad colonial
Sociedad colonial
Antonio Jimenez
Sistemas y técnicas de fabricación
Sistemas y técnicas de fabricación
Frida Prado Gonzalez
Planificación semana 2 noviembre
Planificación semana 2 noviembre
Verano Limon
Procesos de tostación
Procesos de tostación
Renzo Giancarlo Zegarra Meza
ursuletul Knut
ursuletul Knut
cicorico
Cuentos Morgau
Cuentos Morgau
Pau Janer
Banner4_PRINT
Banner4_PRINT
Rohan De Silva
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
NETWAYS
AdminCamp 2011 Performance
AdminCamp 2011 Performance
Ulrich Krause
Linux-Server mit Open-Source-Tools automatisieren
Linux-Server mit Open-Source-Tools automatisieren
Christian Kauhaus
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
inovex GmbH
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
inovex GmbH
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
Gunther Pippèrr
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
SpeedPartner GmbH
Grundlagen puppet
Grundlagen puppet
inovex GmbH
Weitere ähnliche Inhalte
Andere mochten auch
Technology road map
Technology road map
Emile Shaul
Bewusstsein (German)
Bewusstsein (German)
Hitoshi Tsuchiyama
Apple
Apple
Luis Xavier
New microsoft power point presentation
New microsoft power point presentation
Khorshed Imran
Las profesiones 6 sınıf
Las profesiones 6 sınıf
profesorasofiak
El caso de dragon mart
El caso de dragon mart
Frida Prado Gonzalez
Los oficios 2º
Los oficios 2º
Yenny Zujeyli De La Cruz Valenzuela
Sociedad colonial
Sociedad colonial
Antonio Jimenez
Sistemas y técnicas de fabricación
Sistemas y técnicas de fabricación
Frida Prado Gonzalez
Planificación semana 2 noviembre
Planificación semana 2 noviembre
Verano Limon
Procesos de tostación
Procesos de tostación
Renzo Giancarlo Zegarra Meza
ursuletul Knut
ursuletul Knut
cicorico
Cuentos Morgau
Cuentos Morgau
Pau Janer
Banner4_PRINT
Banner4_PRINT
Rohan De Silva
Andere mochten auch
(14)
Technology road map
Technology road map
Bewusstsein (German)
Bewusstsein (German)
Apple
Apple
New microsoft power point presentation
New microsoft power point presentation
Las profesiones 6 sınıf
Las profesiones 6 sınıf
El caso de dragon mart
El caso de dragon mart
Los oficios 2º
Los oficios 2º
Sociedad colonial
Sociedad colonial
Sistemas y técnicas de fabricación
Sistemas y técnicas de fabricación
Planificación semana 2 noviembre
Planificación semana 2 noviembre
Procesos de tostación
Procesos de tostación
ursuletul Knut
ursuletul Knut
Cuentos Morgau
Cuentos Morgau
Banner4_PRINT
Banner4_PRINT
Ähnlich wie System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
NETWAYS
AdminCamp 2011 Performance
AdminCamp 2011 Performance
Ulrich Krause
Linux-Server mit Open-Source-Tools automatisieren
Linux-Server mit Open-Source-Tools automatisieren
Christian Kauhaus
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
inovex GmbH
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
inovex GmbH
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
Gunther Pippèrr
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
SpeedPartner GmbH
Grundlagen puppet
Grundlagen puppet
inovex GmbH
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Peter Ramm
Drupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in Klagenfurt
dasjo
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
B1 Systems GmbH
High performance mit PHP
High performance mit PHP
Thomas Burgard
Über Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der Datenbank
Gunther Pippèrr
Nagios Conference 2007 | Eventverarbeitung mit Nagios by Michael Streb
Nagios Conference 2007 | Eventverarbeitung mit Nagios by Michael Streb
NETWAYS
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003
Jürg Stuker
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
OPITZ CONSULTING Deutschland
Domino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machen
Domino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machen
Andreas Ponte
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Torsten Kleiber
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Novakenstein
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
SpeedPartner GmbH
Ähnlich wie System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
(20)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
AdminCamp 2011 Performance
AdminCamp 2011 Performance
Linux-Server mit Open-Source-Tools automatisieren
Linux-Server mit Open-Source-Tools automatisieren
Opensource Tools für das Data Center Management
Opensource Tools für das Data Center Management
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
Extbase/Fluid: Kennenlernen und ausprobieren
Extbase/Fluid: Kennenlernen und ausprobieren
Grundlagen puppet
Grundlagen puppet
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Oracle-DB: Panorama-Sampler - Eigenes Workload Repository für Panorama
Drupal Austria Roadshow in Klagenfurt
Drupal Austria Roadshow in Klagenfurt
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
High performance mit PHP
High performance mit PHP
Über Rechte/Rollen und den sicheren Betrieb der Datenbank
Über Rechte/Rollen und den sicheren Betrieb der Datenbank
Nagios Conference 2007 | Eventverarbeitung mit Nagios by Michael Streb
Nagios Conference 2007 | Eventverarbeitung mit Nagios by Michael Streb
Top 10 Internet Trends 2003
Top 10 Internet Trends 2003
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Domino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machen
Domino 9 - jetzt mit integrierten Features, die das Admin-Leben leichter machen
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Qualitätssicherung in ADF Projekten der IKB Deutschen Industriebank AG
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Migrate your Sametime Server to LDAP Authentication (Admincamp 2013)
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
Mehr von SpeedPartner GmbH
Professional reports with SVG
Professional reports with SVG
SpeedPartner GmbH
Secure PHP environment
Secure PHP environment
SpeedPartner GmbH
XUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the web
SpeedPartner GmbH
PHP-Applikationen mit PEAR
PHP-Applikationen mit PEAR
SpeedPartner GmbH
PHP-Entwicklung mit PEAR
PHP-Entwicklung mit PEAR
SpeedPartner GmbH
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
SpeedPartner GmbH
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
SpeedPartner GmbH
News from PEAR
News from PEAR
SpeedPartner GmbH
PEAR - An introduction
PEAR - An introduction
SpeedPartner GmbH
Suchmaschinen-Optimierung
Suchmaschinen-Optimierung
SpeedPartner GmbH
.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain
SpeedPartner GmbH
Leben und Arbeiten in einer Community
Leben und Arbeiten in einer Community
SpeedPartner GmbH
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
SpeedPartner GmbH
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
SpeedPartner GmbH
Deploying IPv6 - planning, common pitfalls and security-considerations
Deploying IPv6 - planning, common pitfalls and security-considerations
SpeedPartner GmbH
Explanation of the TYPO3 Integrator Certification
Explanation of the TYPO3 Integrator Certification
SpeedPartner GmbH
Mehr von SpeedPartner GmbH
(16)
Professional reports with SVG
Professional reports with SVG
Secure PHP environment
Secure PHP environment
XUL - The future of user-interfaces on the web
XUL - The future of user-interfaces on the web
PHP-Applikationen mit PEAR
PHP-Applikationen mit PEAR
PHP-Entwicklung mit PEAR
PHP-Entwicklung mit PEAR
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Websockets: Leichtgewichtige Verbindungen für Web-Applikationen
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
News from PEAR
News from PEAR
PEAR - An introduction
PEAR - An introduction
Suchmaschinen-Optimierung
Suchmaschinen-Optimierung
.EU – eine neue Top-Level-Domain
.EU – eine neue Top-Level-Domain
Leben und Arbeiten in einer Community
Leben und Arbeiten in einer Community
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Sicherer Wegweiser im Internet: DNSSEC im praktischen Einsatz
Deploying IPv6 - planning, common pitfalls and security-considerations
Deploying IPv6 - planning, common pitfalls and security-considerations
Explanation of the TYPO3 Integrator Certification
Explanation of the TYPO3 Integrator Certification
System-Management-Trio: Zentrale Verwaltung mit facter, puppet und augeas
1.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 1 / 33© SpeedPartner GmbH System-Management-Trio Zentrale Verwaltung mit facter, puppet und augeas
2.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 2 / 33© SpeedPartner GmbH Über den Vortrag Aufbau / Ziele: ● Einführung / Überblick ● Begriffsklärung ● Aufbau / Arbeitsweise von Manifests ● Templates, Klassen, Typen, Module ● Facter: Umgebungsparameter ermitteln ● Augeas: Konfigurationen bearbeiten ● Client-Server-Betrieb ● Arbeit mit mehreren Umgebungen ● Links / Hilfen
3.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 3 / 33© SpeedPartner GmbH Über mich ● Stefan Neufeind ● Mit-Geschäftsführer der SpeedPartner GmbH aus Neuss ein Internet-Service-Provider (ISP) ● Individuelle TYPO3-Entwicklungen ● Hosting, Housing, Managed Services ● Domains / Domain-Services ● IPv6, DNSSEC, ... ● Aktive Mitarbeit im Community-Umfeld (PHP/PEAR, TYPO3, Linux) ● Freier Autor für z.B. t3n, iX, Internet World, ...
4.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 4 / 33© SpeedPartner GmbH Aufgabenstellung Alltägliche Administrationsaufgaben für ein (Server-)System Basisinstallation Einrichtung / Konfiguration Individuelle Anpassungen Fehlersuche / Fehlerkorrektur Zugänge Netzwerk Backup Systemstatistiken Monitoring Virtuell? Architektur RAID?Aufgaben Fehler bei Ausführung von „Standard-Aufgaben“? Fehler durch die „Sonderlösungen“? Konzeptfehler?
5.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 5 / 33© SpeedPartner GmbH Aufgabenstellung Herausforderungen bei Administration mehrerer Systeme ● Einsparungen (Zeit und Kosten) ● Minimierung von Fehlern ● Einheitliche Konfiguration ● Einfache Anpassbarkeit ● Zentral? ● Automatisiert? Umsetzung erfordert: ● Klare Regeln / Entscheidungsgrundlagen ● Abgleich Vorgaben und Realität ● Strukturierte Herangehensweise ● Unterstützung durch geeignete Hilfsmittel
6.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 6 / 33© SpeedPartner GmbH Vorstellung System-Management-Trio Das „System-Management-Trio“ bestehend aus: ● Puppet ● Facter ● Augeas ● Zentrale Komponente ● Definiert Regeln, Abhängigkeiten, Aktionen, ... ● Vorgaben basierend auf Fakten ● Abgleich Planung / Vorgaben und Realität ● Liefert „Fakten“ für Puppet ● Ermittelt Umgebungsparameter ● Bereitstellung in einheitlicher Form ● Anpassung von Konfigurationen ● Abstraktion für Zugriff auf Konfigurationseinstellungen
7.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 7 / 33© SpeedPartner GmbH Vorstellung System-Management-Trio Zentrale Begriffe im puppet-Umfeld: ● Manifests: ● „Verzeichnis“ von Objekten, Eigenschaften und Beziehungen ● Dateiendung: .pp ● Ressourcen: ● Definition über den „Ressource abstraction layer“ (RAL) ● Beziehen sich auf Entsprechungen im System ● Unabhängig z.B. vom verwendeten Paketmanager ● Zentrale Ressourcentypen: Dateien, Pakete, Dienste, Benutzer/Gruppen ● Bestehend aus einem „Titel“ und „Attributen“ ● Jede Ressource eindeutig ● Modellierung von Abhängigkeiten, Reihenfolge der Definition beliebig ● Puppet auto-generiert sinnvolle Reihenfolgen (z.B. erst Verzeichnisse anlegen, dann darin enthaltene Dateien) ● Knoten („nodes“): ● Sammlung von Ressourcen
8.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 8 / 33© SpeedPartner GmbH Vorstellung System-Management-Trio Zentrale Begriffe im puppet-Umfeld: ● Templates: ● Vorlagen für Ressourcentyp Datei („file“) ● Ausgabe auf Basis von Variablen (Fakten), Kontrollstrukturen und umgebeneder Notation ● Notation mit Hilfe von ERB (eine Implementierung von „embedded ruby“, auch eRuby genannt) ● Module: ● Sammlung von Code und Daten ● Einheitliche Verzeichnis-/Dateistruktur ● Wiederverwendbar ● Fertige Module für verschiedene Einsatzzwecke verfügbar (siehe z.B. auf „Puppet Forge“)
9.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 9 / 33© SpeedPartner GmbH Manifests und Ressourcen Notation in „Manifests“: ● Puppet-eigene Syntax ● Zeichenketten in einfachen Hochkommata ('...') oder Anführungszeichen (“...”) ● Hochkommata: keine weitere Verarbeitung der Inhalte ● Anführungszeichen: Ersetzung von z.B. Zeilenumbrüche (“n”), Variablen (“${fileame}”) oder Platzhaltern (wie z.B. $0, $1, ... bei der Verwendung von regulären Ausdrücken) ● Listen von Werten (Arrays): in eckigen Klammern, Werte mittels Kommas getrennt file { '/etc/my.cnf': ensure => file, mode => 600, source => '/home/demo/my.cnf', } Ressourcen-Typ gefolgt von Block in geschweifte Klammern Block mit eindeutigem Titel (je Ressourcen-Typ) gefolgt von Doppelpunkt Definierte Werte / Zahlen ohne Klammerung Notation mit key => value Attribute mit Komma getrennt
10.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 10 / 33© SpeedPartner GmbH Manifests und Ressourcen Arbeitsweise von „Manifests“: ● Definitionen von Eigenschaften, keine sequentielle „Abarbeitung“ / Reihenfolge ● Keine Löschung / Überschreibung von einmal definierten Ressourcen oder zugewiesene Variablen ● Compiler löst vor Anwendung der Definitionen etwaige Bedingungen auf ● Notwendige Reihenfolge (Abhängigkeiten) von Ressourcen bei Definition von Ressourcen angeben Beispiel: Installation eines Pakets Anpassung Konfigurationsdateien Starten zugehöriger Dienste
11.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 11 / 33© SpeedPartner GmbH Manifests und Ressourcen Abhängigkeiten zwischen Ressourcen: ● Definitionen über Meta-Parameter innerhalb Ressourcen-Definitionen ● 'before': diese Ressource vor der angegebenen berücksichtigen ● 'require': diese Ressource nach der angegebenen berücksichtigen ● 'notify': ein/mehrere andere Ressourcen benachrichtigen (sofern Änderungen durchgeführt wurden) ● 'subscribe': auf Änderungen einer anderen Ressource reagieren ● Explizite Definition (separate Zeile in Manifest) ● Angabe einer Reihenfolge (Pfeil mit Bindestrich) ● Angabe einer Benachrichtigung (Pfeil mit Tilde) package { 'mysql-server': } -> file { '/etc/my.cnf': }
12.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 12 / 33© SpeedPartner GmbH Manifests und Ressourcen Das erste Manifest: ● Notation in einer beliebigen Datei (hier: demo1.pp) ● Anwenden des Manifest auf das System package { 'mysql-server': ensure => present, } file { '/etc/my.cnf': ensure => file, mode => 600, source => '/home/demo/my.cnf', } service { 'mysqld': ensure => running, enable => true, hasrestart => true, hasstatus => true, subscribe => File['/etc/my.cnf'], require => Package['mysql-server'], } puppet apply demo1.pp Dienst soll (aktuell) gestartet sein Dienst soll automatisch starten Startskripte unterstützen „restart“ / „status“ Bei Änderungen an Datei restart Paket muss installiert sein
13.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 13 / 33© SpeedPartner GmbH Facter Fakten und Entscheidungen: ● Testweise händischer Aufruf von „Facter“ für Übersicht Eigenschaften (Auszug) # facter architecture => x86_64 augeasversion => 0.10.0 domain => example.com facterversion => 1.6.6 fqdn => demohost.example.com hostname => demohost is_virtual => true virtual => kvm kernel => Linux kernelmajversion => 2.6 kernelrelease => 2.6.18-308.1.1.el5 kernelversion => 2.6.32 manufacturer => Red Hat operatingsystem => CentOS operatingsystemrelease => 5.8 osfamily => RedHat physicalprocessorcount => 4 processorcount => 4 uptime_hours => 136 uptime_seconds => 490098
14.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 14 / 33© SpeedPartner GmbH Facter Fakten und Entscheidungen: ● Facter ermittelt Fakten über das System ● Facter-Module stellen Daten in Variablen zur Verfügung ● Fakten können für Entscheidungen innerhalb des Manifest genutzt werden ● Standardoperationen (==, !=, <, >, <=, >=) ● Reguläre Ausdrücke (=~ und !~) ● „in“-Operator (Prüfung gegen eine Liste von Werten) case $operatingsystem { centos, redhat, fedora: { $nameserver = "named" } debian: { $nameserver = "bind9" } default: { fail("Unknown OS") } } $nameserver = $operatingsystem ? { centos => 'named', redhat => 'named', fedora => 'named', debian => 'bind9', default => undef, } ● Mehrfach-Entscheidung per „case“ ● Selektoren (ähnlich ternären Operatoren aus anderen Sprachen)
15.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 15 / 33© SpeedPartner GmbH Manifests und Ressourcen Pfade: ● Bis hier nur Manifest-Dateien im aktuellen Pfad bzw. mit absoluter Adressierung verwendet ● Empfehlung: Angaben relativ zum puppet Modul-Pfad ● System-unabhängig ● Transparent für spätere Verwendung von puppet im Client-/Server-Modus ● Ermittlung Pfad für Manifests: Alternativ: z.B. gesamte Konfiguration über Schlüsselwort „all“ ermitteln ● Umstellung Adressierung auf relative Angaben, z.B. für Template-Dateien # puppet apply --configprint manifestdir source => 'puppet:///files/etc/my.cnf'
16.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 16 / 33© SpeedPartner GmbH Manifests und Ressourcen Klassen: ● Zusammenfassung wiederverwendbarer Definitionen ● Definierte Klassen dann noch als Ressourcen einbinden ● Einbindung per „class“ oder „include“ ● Übergabe von Parametern bei Verwendung von „class“-Notation möglich ● Autoloader: Klassen (und Module) werden automatisch geladen ● Konvention: Verzeichnis „classes“, Dateiname „klassenname.pp“ # Klasse definieren class db { # Definitionen innerhalb Klasse wie gewohnt } # Klasse einbinden class { 'db': } # Alternativ per include include db
17.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 17 / 33© SpeedPartner GmbH Manifests und Ressourcen Klassen und Variablen: ● Variablen innerhalb Klasse bilden separaten Geltungsbereich („Scope“) ● Falls Variable nicht im aktuellen „Scope“ auffindbar Rückgriff auf übergeordnete Ebene ● Klassenvariablen von außerhalb per voll qualifiziertem Namen erreichbar, Notation mit zwei Doppelpunkten, z.B. $db::variable ● Aus Klasse expliziter Zugriff auf globale Variablen möglich, die z.B. per facter bereitgestellt werden: $::operatingsystem Parametrisierte Klassen: ● Erlaubt Übergabe von Werten # Definition class db ($dbname, $servername = 'localhost') { ... } # Einbindung als Ressource class {'db': $dbname => 'demodb', }
18.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 18 / 33© SpeedPartner GmbH Manifests und Ressourcen Definition von Typen: ● Problem: Je Ressource nur eine eindeutige Definition möglich. Wie einfache „Mehrfach-Nutzung“? ● Lösung: Eindeutige Definitionen verwenden. Arbeitserleichterung durch Verwendung von Typen. ● Ansatz: Ressourcen benötigen pro Ressourcen-Typ eindeutigen Titel define sshkeys ($user = $title, $content) { file {"${user}/keys": path => "/home/${user}/.ssh/authorized_keys", ensure => file, content => $content, mode => 0644, owner => $user, require => User[$user], } } # Verwendung sshkeys { 'joeuser': content => '...' } beliebiger, eindeutiger Titel
19.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 19 / 33© SpeedPartner GmbH Manifests und Ressourcen Module: ● Fassen Code und Daten zusammen ● Leichte Wiederverwendbarkeit ● Modul-Sammlung z.B. bei „Puppet Forge“ (siehe Hersteller-Website) verfügbar ● Automatische Initialisierung innerhalb Moduls durch init-Manifest ● Einheitliche Struktur: {module}/ files/ lib/ manifests/ init.pp {class}.pp {namespace}/ {class}.pp templates/ tests/ automatisch geladen, ermöglicht weitere Initialisierungen
20.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 20 / 33© SpeedPartner GmbH Manifests und Ressourcen Templates: ● Ermöglicht Dateiinhalte mit (teilweise) dynamischen Inhalten ● Verwendung von ERB-Notation (Implementierung von „embedded ruby“, auch eRuby genannt) ● Code innerhalb spitzer Klammern mit Prozentzeichen ● Kurzschreibweise zur Ausgabe von Variablen / Ausdrücken: Gleichheitszeichen am Anfang ● Schleife zur Ausgabe über ein Array ● Definition Werte in Manifest: ● Ausgabe im Template: <% ...ruby-Code... %> <%= hostname %> $servernamen = ['server1', 'server2', 'server3', ] <% serversnamen.each do |srv| -%> <%= srv %> <% end -%>
21.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 21 / 33© SpeedPartner GmbH Augeas Konfigurationsdateien bearbeiten: ● Einheitliche, hierarchische Sicht auf verschiedene Konfigurationsformate ● Unterstützung von Dateien/Formaten über passende „Linsen“ („lenses“) ● Zugriff / Änderung von relevanter Teile einfach, Rest bleibt unberührt # augtool augtool> print /files/etc/php.ini [...] /files/etc/php.ini/PHP/expose_php = "On" /files/etc/php.ini/PHP/max_execution_time = "30" /files/etc/php.ini/PHP/max_input_time = "60" /files/etc/php.ini/PHP/max_input_vars = "1000" /files/etc/php.ini/PHP/memory_limit = "128M" /files/etc/php.ini/PHP/error_reporting = "E_ALL & ~E_DEPRECATED" /files/etc/php.ini/PHP/display_errors = "Off" /files/etc/php.ini/PHP/display_startup_errors = "Off" /files/etc/php.ini/PHP/log_errors = "On" /files/etc/php.ini/PHP/log_errors_max_len = "1024" /files/etc/php.ini/mail function /files/etc/php.ini/mail function/SMTP = "localhost" /files/etc/php.ini/mail function/smtp_port = "25" /files/etc/php.ini/mail function/sendmail_path = "/usr/sbin/sendmail -t -i" augtool> set /files/etc/php.ini/PHP/expose_php Off
22.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 22 / 33© SpeedPartner GmbH Augeas Konfigurationsdateien bearbeiten: ● Integration von augeas in puppet verfügbar class php { package { ['php','php-mysql','php-gd','php-pdo'] : ensure => installed, } augeas { "/etc/php.ini": context => "/files/etc/php.ini", changes => [ "set PHP/expose_php off", "set mail function/mail.add_x_header off", "set Date/date.timezone Europe/Berlin", "set PHP/display_errors on", "set PHP/error_reporting E_ALL & ~E_NOTICE", "set PHP/memory_limit 128M", "set PHP/post_max_size 64M", "set PHP/upload_max_filesize 64M", "set PHP/max_execution_time 180", "set Session/session.save_path /tmp", ], notify => [ Service['httpd'] ], } }
23.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 23 / 33© SpeedPartner GmbH Facter für Fortgeschrittene Fakten schaffen: ● Erweiterung der facter-Funktionalität über eigene Module möglich ● Werte stehen in puppet in Variablen zur Verfügung ● Beispielskript zur (simplen) Ermittlung aller Laufwerke unterhalb eigenen Modulpfads ablegen, etwa modules/mymodules/lib/facter/harddrives.rb Facter.add(:harddrives) do setcode do Facter::Util::Resolution.exec("ls /dev/sd? /dev/hd? 2>/dev/null | tr -s 'n' ','") end end
24.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 24 / 33© SpeedPartner GmbH Facter für Fortgeschrittene Fakten schaffen: ● Beispielskript zur Erkennung Hard-/Software-RAID Facter.add("raidtype") do confine :kernel => :linux ENV["PATH"]="/bin:/sbin:/usr/bin:/usr/sbin" setcode do raidtype = [] if FileTest.exists?("/proc/mdstat") txt = File.read("/proc/mdstat") raidtype.push("software ") if txt =~ /^md/i End lspciexists = system "/bin/bash -c 'which lspci >&/dev/null'" if $?.exitstatus == 0 output = %x{lspci} output.each { |s| raidtype.push("hardware ") if s =~ /RAID/i } end raidtype end end
25.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 25 / 33© SpeedPartner GmbH Puppet im Client/Server-Einsatz Vorteile: ● Zentrale Verwaltung von Definitionen und Regeln ● Zentrale Ablage der „Fakten“ für alle Systeme ● Bildung von Gruppen möglich (alle Webserver, alle Server mit bestimmtem Hostnamen-Schema, ...) Konfiguration Server: ● Installation Server-Paket „puppet“, inkl. facter und (optional) augeas ● CentOS, RedHat, Fedora: Paket „puppet-server“, bei Debian „puppetmaster“ ● Laden aller Definitionen für Nodes und Klassen, z.B. über Einträge in /etc/puppet/manifests/site.pp vornehmen ● Je Node eine Datei im nodes-Verzeichnis anlegen für Definition von Ressourcen, Verwendung von Klassen, ... import "nodes/*.pp" import "classes/*.pp" node "testclient.example.com" { include basenode }
26.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 26 / 33© SpeedPartner GmbH Puppet im Client/Server-Einsatz Konfiguration Server: ● Klassen können dann beispielsweise weitere Klassen includen oder Ressourcen definieren ● Ablegen aller weiteren benötigten Dateien auf dem Server (files, templates, ...) ● Verwendung von puppet:// URLs für Zugriff auf Dateien vom Server ● puppetmaster-Daemon starten :-) class basenode { if ($mta == '') { $mta = 'postfix' } include basepackages, crond, puppet, sshd, logrotate, logwatch, collectd, mailalias, nrpe if ($is_virtual == "false") { include ntp include lm_sensors include dns_resolver } }
27.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 27 / 33© SpeedPartner GmbH Puppet im Client/Server-Einsatz Client-Server-Verbindung: ● Puppet auf Client installieren, ggf. Server-Einstellung anpassen (/etc/puppet/puppet.conf) ● Standard-Servername ist „puppetmaster“ ● Betrieb Client als Daemon möglich (Standardmäßig Ausführung alle 30min.) oder händischer Start (Parameter --test beim Aufruf) ● Erster Verbindungsaufbau erzeugt einen Zertifikatsrequest ● Praxistipp: Client kann auf Akzeptieren des Zertifikat warten ● Zertifikatsanfragen am Server prüfen und signieren ● Prüfen welche Änderungen auf dem Client durchgeführt würden (Trockenübung) [agent] server = puppetsrv.example.com # puppetd --waitforcert 60 --test # puppetca --list # puppetca --sign <Clientname> oder # puppetca --sign –all Aufpassen was signiert wird! # puppetd --test ---noop
28.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 28 / 33© SpeedPartner GmbH Environments Arbeit mit mehreren Umgebungen: ● Trennung in z.B. „dev“ und „production“ ● Angabe des Environment für einen Node auf Server oder Client ● Client-seitige Wahl des Environment empfohlen ● Standard-Environment: „production“ ● Konfiguration des Environment auf dem Server (puppet.conf): ● Standard-Einstellungen aus [master] für unbekanntes Environment ● Konfiguration des Environment auf dem Client (puppet.conf): [master] manifest = $confdir/manifests/site.pp [production] manifest = $confdir/env/prod/manifests/site.pp [dev] manifest = $confdir/env/$environment/manifests/site.pp [agent] environment = dev
29.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 29 / 33© SpeedPartner GmbH Externe Anbindungen Vielfältige Möglichkeiten zur Integration: ● Generierung Node-Konfiguration über „external node classifier“ (ENC) ● Externes Programm erhält Node-Namen, liefert YAML-Dokument zurück ● z.B. Abfrage gegen beliebige Datenbanken --- classes: dyn: ports: - 25 - 587 smtpmx: gw.mens.de users: alex: home: /nfs/alex uid: 502 jane: home: /home/jane uid: 201 ssh: '' parameters: location: Chicago manager: Jane Doe my_memory: 216 nodename: cp09.mens.deGrafik / Beispiel von Jan-Piet Mens, jpmens.net
30.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 30 / 33© SpeedPartner GmbH Externe Anbindungen Vielfältige Möglichkeiten zur Integration: ● Von facter gesammelte „Fakten“ für Generierung von Konfigurationen nutzen ● Pro Node ermittelt ● Daten zentral auf dem puppet-master verfügbar (/var/lib/puppet/yaml/facts) ● Monitoring-Konfiguration ● Welche Hosts ● Welche Dienste / Ports ● Backup-Konfiguration ● Automatische Einrichtung auf Backuptarget ● Backup-Rollover, ... ● SSHFP-Records generieren / publizieren ● „ssh“-Fact sammelt bereits RSA/DSA-Keys ● Hieraus SSHFP-Records generieren und ins DNS bringen
31.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 31 / 33© SpeedPartner GmbH Fazit ● Definition und Umsetzung klarer Regeln ● Leichte Administration einer größeren Anzahl Maschinen / Umgebungen ● Flexible Konfigurationsmöglichkeiten ● Nutzung lokal oder im Client-Server-Betrieb ● Zentrale Sammlung aller „Fakten“ auf Server ● Ermöglicht weitere Verarbeitung für z.B. Monitoring-Konfiguration ● Leichter Einstieg für einzelne Teilaspekte einer Konfiguration möglich ● Ausbaufähig zu umfangreichen Regelwerken ● Aufwand für Definition aller Abhängigkeiten und Sonderfälle nicht unterschätzen!
32.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 32 / 33© SpeedPartner GmbH Links / Hilfen ● Cheatsheet für alle Kern-Ressourcetypen und ihre Attribute: http://docs.puppetlabs.com/puppet_core_types_cheatsheet.pdf ● „Puppet Forge“ (Sammlung fertiger Module): http://forge.puppetlabs.com/ ● External Node Classifiers (ENC): http://jpmens.net/2011/07/25/external-node-classification-and-data-in-puppet/ ● Generieren von Konfigurationen aus „facts“, z.B. SSHFP-Record-Einträge https://github.com/jpmens/facts2sshfp http://jpmens.net/2012/02/01/on-collecting-ssh-host-keys-for-sshfp-dns-records/
33.
Verwaltung mit facter,
puppet und augeas GUUG-Treffen in Hamburg, 13.09.2012 Seite: 33 / 33© SpeedPartner GmbH Kontakt Danke fürs Zuhören sowie viel Erfolg und Spaß mit puppet & Co.! Link zu den Slides: http://talks.speedpartner.de/ Bei Fragen stehen wir selbstverständlich gerne zur Verfügung: Stefan Neufeind, neufeind@speedpartner.de SpeedPartner GmbH, http://www.speedpartner.de/
Jetzt herunterladen