SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Puppet Kickstart
Referent: Thomas Gelf
Nürnberg, 06.06.2011
 Einführung in Puppet
 Kurz und würzig
 Soll Lust auf mehr machen!
Zuallererst... ICH!
 30 Jahre
 "Italienischer Staatsbürger deutscher Muttersprache"
…oder kurz: Südtiroler!
 Senior Consultant bei Netways
 Netz, Systemplattformen und -Architektur, Software
Ich und Puppet
 Trainings
 ADMIN-Magazin 06/2010
Netways und Puppet
 Offizieller Schulungs-Partner von Puppetlabs
 Nächster Termin: 24. - 26. Mai
 Weitere Termine:
13. - 15. September 2011
06. - 08. Dezember 2011
Was ist eigentlich Puppet?
 Werkzeug für das Konfigurationsmanagement
 Gute Anregung zum Reflektieren der eigenen Vorgänge
und Arbeitsweise
 Alle Systeme sind gleich?
 Im Grunde eine Abstraktionsschicht zwischen dem
Administrator und seinen Systemen
Konfigurationsmanagement?
 Ist laut Wikipedia eine „Managementdisziplin“
 Management?
 Disziplin?
 KMO, KI, KÜ, KB, KA – k.A.?
Aber... äääh... Kickstart?
 Das Schöne an Puppet:
Auspacken, loslegen!
 Schnell erste Erfolge...
...ohne große Vorbereitung!
So ganz ohne Plan? Besser nicht!
 Ein guter Plan kann WIRKLICH nicht schaden:
– Wofür genau will man Puppet nutzen?
– Was fällt in seine Zuständigkeit, was nicht?
 Aber zuallererst:
– Kennenlernen
– Rumspielen
– Ausprobieren
Wie, woher, wieso?
 Luke Kanies
 Puppet Labs
 Ruby
 Lizenz: GPL
Der Mitbewerb
 bcfg2
 cfengine
 chef
 ssh & for-Schleifen
 ...
Welche Vorteile bietet Puppet?
 Reproduzierbarkeit
 Konsistenz
 Einfacher Einstieg
 Portabel (Linux, Solaris, BSD...)
Warum ist Puppet anders?
 Im Vordergrund stehen:
„Die Abhängigkeiten zwischen den zu konfigurierenden
Komponenten“
 Und die Details der Konfiguration?
Werden in den Hintergrund verschoben!
 Deklarative Sprache
Wer Erfolg und alles unter Kontrolle haben will...
 ...der benötigt:
Fakten (facts)
Puppets (Marionetten)
...und Ruby!!
Also los!
 Erstes Werkzeug: ralsh
 Oder eigentlich: puppet resource
 Praktische Beispiele:
– ralsh user
– puppet resource package
– ...
Zu Befehl!
 Wie jetzt? ralsh oder puppet resource?
Puppet bis 0.25 Puppet 2.6
puppetmasterd puppet master
puppetd puppet agent
puppet puppet apply
puppetca puppet cert
ralsh puppet resource
puppetqd puppet queue
filebucket puppet filebucket
puppetdoc puppet doc
pi puppet describe
Um die Verwirrung perfekt zu machen...
 Auch Konfigurationsdateien entsprechend geändert:
 [puppetd] → [agent]
 [puppetmasterd] → [master]
Welche Version einsetzen?
 Empfehle mit 2.6 zu starten: viel mehr Möglichkeiten
 Grundsätzlich:
– Alte Clients laufen auch mit neuem Server
– Gilt umgekehrt nicht immer
 Bei Upgrade also immer den Server zuerst!
 Und...
...das Testen nicht vergessen!
 Falls nicht von Distro bereitgestellt: Ruby-Gem
Komponenten
 Bibliothek voll mit „Rezepten“
– Darauf aufbauend wird mit deklarativer Sprache
festgelegt, wie die eigenen Systeme aussehen sollen
 Client- und Serverkomponenten
Architektur
 SSL-Verbindung zum Master
 XML-RPC oder auch REST
 Master verpackt die Konfiguration für den Client
 Client vergleicht diese mit seinem Status Quo...
 ...und korrigiert eventuelle Abweichungen
(Praktisches Beispiel)
Wo liegt die Konfiguration?
 Bei Bedarf auch LDAP oder SQL
 Aber: am attraktivsten mit klassischen Textfiles
 Versionskontrollsystem:
– Sämtliche Änderungen historisch nachvollziehbar
– Rollback!
Puppet kann VCS? SVN? GIT?
 Jain.
 Use the right tool for the right job!
 Puppet stellt „nur“ die Infrastruktur zum Verteilen der
Konfiguration bereit
 Wer diese liefert, ist ihm ziemlich egal
Fakten
 facter
 Standalone-Tool
 Plattformübergreifend
 Ruby-Bibliothek
 System-Informationen
(Praktisches Beispiel)
 Eigene „facts“ möglich
 Good news: IPv6 facts mittlerweile im Master!
Nomen es omen
 Verwaltete Objekte nennen sich „Resourcen“
 Resourcen sind in Gruppen organisiert, wir sprechen
hier vom „Type“
 Konfiguration oder Codeschnipsel nennen sich
„Manifest“
Manifeste?
 Im Sinne der Ladungsliste eines Schiffes
 Was soll drauf sein
 Aber nicht: was müssen wir noch aufladen
Wie soll so ein Manifest aussehen?
 Hübsch. Syntax Highlighting → vim-puppet
 Puppet lässt uns ziemlich freie Hand
 Es ist eine gute Idee, sich an die „Best Practices“ zu
halten
http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Best_Practice
http://projects.puppetlabs.com/projects/puppet/wiki/Advanced_Puppet_Pattern
 Alles in „Modules“ packen
 Beispiele suchen! (http://forge.puppetlabs.com/ etc)
(Praktische Beispiele)
Ein erstes vollständiges Manifest
Was fehlt noch zur vollständigen Umgebung?
 Zentrale Konfigurationsdatei: puppet.conf
 Abschnitt [main] → Pfade
 Evtl noch Abschnitte für [master] etc
 Distributionsspezifisches (z.b. /etc/defaults/puppet)
 Das zentrale Manifest liegt für gewöhnlich unter
/etc/puppet/manifests/site.pp
Kennenlernen
 Master und Agent kennen sich noch nicht!
 Client stellt automatisch eine Zertifikatsanfrage
 Auf dem Master sichtbar:
# puppet cert --list
client1.example.com
# puppet cert --sign client1.example.com
 WICHTIG: Saubere Namensauflösung
Schnelltest
 Es reicht eine einfache site.pp:
node default {
notice("Unbelievable, it's really working!")
}
 Auf dem Master muss im Syslog eine entsprechende
Meldung erscheinen, in etwa so:
(Scope(Node[default])) Unbelievable, it's really working!
Wichtige Begriffe
 Catalog: Gesamtheit der Ressourcen, Dateien,
Eigenschaften für ein bestimmtes System
 Class: Behälter für Ressourcen
 Definition, Defined Type: auf Anwendungsebene
definierter Resource-Typ (!= native type)
 Plugin: eigene Typen, mit Ruby erstellt
 Templates: ERB-Dateien, um systemspezifische
Konfigurationsdateien erstellen zu können
 Variablen: Variablen, aber unveränderlich
Serverbetrieb
 Out of the box mit webrick
– Will man NICHT haben
 Alternativ: mongrel
 Besser: Passenger (= mod_rails für Apache)
 Im Idealfall: fertige Pakete aus Distro
 Neue Ansätze: MCollective
Web-Frontends
 Foreman
 Puppet Dashboard
Danke für Ihre Aufmerksamkeit!
Noch Fragen?

Weitere ähnliche Inhalte

Ähnlich wie OSDC 2011 | Puppet from Scratch by Thomas Gelf

Puppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes TeamPuppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes TeamNETWAYS
 
Puppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und BasismodulePuppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und Basismoduleinovex GmbH
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 
PHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnPHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnRalf Eggert
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrants0enke
 
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur UmsetzungPuppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzunginovex GmbH
 
Pavone espresso workflow_10_5_-_was_ist_neu_0103
Pavone espresso workflow_10_5_-_was_ist_neu_0103Pavone espresso workflow_10_5_-_was_ist_neu_0103
Pavone espresso workflow_10_5_-_was_ist_neu_0103Bjoern Reinhold
 
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)NETWAYS
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsChristoph Adler
 
System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet B1 Systems GmbH
 
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer EinstiegProgrammieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer EinstiegJan Brinkmann
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Nane Kratzke
 
Authoring Management
Authoring ManagementAuthoring Management
Authoring Managementvzimmermann
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 
Azure Notebooks
Azure NotebooksAzure Notebooks
Azure NotebooksTEitelberg
 

Ähnlich wie OSDC 2011 | Puppet from Scratch by Thomas Gelf (20)

Puppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes TeamPuppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes Team
 
Puppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und BasismodulePuppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und Basismodule
 
Froscamp2010_padre
Froscamp2010_padreFroscamp2010_padre
Froscamp2010_padre
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
PHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnPHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickeln
 
Einführung in Puppet und Vagrant
Einführung in Puppet und VagrantEinführung in Puppet und Vagrant
Einführung in Puppet und Vagrant
 
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur UmsetzungPuppet - Module entwickeln - Von der Planung bis zur Umsetzung
Puppet - Module entwickeln - Von der Planung bis zur Umsetzung
 
Pavone espresso workflow_10_5_-_was_ist_neu_0103
Pavone espresso workflow_10_5_-_was_ist_neu_0103Pavone espresso workflow_10_5_-_was_ist_neu_0103
Pavone espresso workflow_10_5_-_was_ist_neu_0103
 
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
 
System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet
 
Werkzeugkasten
WerkzeugkastenWerkzeugkasten
Werkzeugkasten
 
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer EinstiegProgrammieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)
 
Authoring Management
Authoring ManagementAuthoring Management
Authoring Management
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
Azure Notebooks
Azure NotebooksAzure Notebooks
Azure Notebooks
 

Kürzlich hochgeladen

FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data ImputationFEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data ImputationOPEN KNOWLEDGE GmbH
 
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...OPEN KNOWLEDGE GmbH
 
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudFrom Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudOPEN KNOWLEDGE GmbH
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Markus Unterauer
 

Kürzlich hochgeladen (6)

FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data ImputationFEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
 
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
 
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die CloudFrom Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
 
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
Rückwärts denken vorwärts handeln - Requirements Reverse Engineering bei Syst...
 

OSDC 2011 | Puppet from Scratch by Thomas Gelf

  • 1. Puppet Kickstart Referent: Thomas Gelf Nürnberg, 06.06.2011
  • 2.  Einführung in Puppet  Kurz und würzig  Soll Lust auf mehr machen!
  • 3. Zuallererst... ICH!  30 Jahre  "Italienischer Staatsbürger deutscher Muttersprache" …oder kurz: Südtiroler!  Senior Consultant bei Netways  Netz, Systemplattformen und -Architektur, Software
  • 4. Ich und Puppet  Trainings  ADMIN-Magazin 06/2010
  • 5. Netways und Puppet  Offizieller Schulungs-Partner von Puppetlabs  Nächster Termin: 24. - 26. Mai  Weitere Termine: 13. - 15. September 2011 06. - 08. Dezember 2011
  • 6. Was ist eigentlich Puppet?  Werkzeug für das Konfigurationsmanagement  Gute Anregung zum Reflektieren der eigenen Vorgänge und Arbeitsweise  Alle Systeme sind gleich?  Im Grunde eine Abstraktionsschicht zwischen dem Administrator und seinen Systemen
  • 7. Konfigurationsmanagement?  Ist laut Wikipedia eine „Managementdisziplin“  Management?  Disziplin?  KMO, KI, KÜ, KB, KA – k.A.?
  • 8. Aber... äääh... Kickstart?  Das Schöne an Puppet: Auspacken, loslegen!  Schnell erste Erfolge... ...ohne große Vorbereitung!
  • 9. So ganz ohne Plan? Besser nicht!  Ein guter Plan kann WIRKLICH nicht schaden: – Wofür genau will man Puppet nutzen? – Was fällt in seine Zuständigkeit, was nicht?  Aber zuallererst: – Kennenlernen – Rumspielen – Ausprobieren
  • 10. Wie, woher, wieso?  Luke Kanies  Puppet Labs  Ruby  Lizenz: GPL
  • 11. Der Mitbewerb  bcfg2  cfengine  chef  ssh & for-Schleifen  ...
  • 12. Welche Vorteile bietet Puppet?  Reproduzierbarkeit  Konsistenz  Einfacher Einstieg  Portabel (Linux, Solaris, BSD...)
  • 13. Warum ist Puppet anders?  Im Vordergrund stehen: „Die Abhängigkeiten zwischen den zu konfigurierenden Komponenten“  Und die Details der Konfiguration? Werden in den Hintergrund verschoben!  Deklarative Sprache
  • 14. Wer Erfolg und alles unter Kontrolle haben will...  ...der benötigt: Fakten (facts) Puppets (Marionetten) ...und Ruby!!
  • 15. Also los!  Erstes Werkzeug: ralsh  Oder eigentlich: puppet resource  Praktische Beispiele: – ralsh user – puppet resource package – ...
  • 16. Zu Befehl!  Wie jetzt? ralsh oder puppet resource? Puppet bis 0.25 Puppet 2.6 puppetmasterd puppet master puppetd puppet agent puppet puppet apply puppetca puppet cert ralsh puppet resource puppetqd puppet queue filebucket puppet filebucket puppetdoc puppet doc pi puppet describe
  • 17. Um die Verwirrung perfekt zu machen...  Auch Konfigurationsdateien entsprechend geändert:  [puppetd] → [agent]  [puppetmasterd] → [master]
  • 18. Welche Version einsetzen?  Empfehle mit 2.6 zu starten: viel mehr Möglichkeiten  Grundsätzlich: – Alte Clients laufen auch mit neuem Server – Gilt umgekehrt nicht immer  Bei Upgrade also immer den Server zuerst!  Und... ...das Testen nicht vergessen!  Falls nicht von Distro bereitgestellt: Ruby-Gem
  • 19. Komponenten  Bibliothek voll mit „Rezepten“ – Darauf aufbauend wird mit deklarativer Sprache festgelegt, wie die eigenen Systeme aussehen sollen  Client- und Serverkomponenten
  • 20. Architektur  SSL-Verbindung zum Master  XML-RPC oder auch REST  Master verpackt die Konfiguration für den Client  Client vergleicht diese mit seinem Status Quo...  ...und korrigiert eventuelle Abweichungen (Praktisches Beispiel)
  • 21. Wo liegt die Konfiguration?  Bei Bedarf auch LDAP oder SQL  Aber: am attraktivsten mit klassischen Textfiles  Versionskontrollsystem: – Sämtliche Änderungen historisch nachvollziehbar – Rollback!
  • 22. Puppet kann VCS? SVN? GIT?  Jain.  Use the right tool for the right job!  Puppet stellt „nur“ die Infrastruktur zum Verteilen der Konfiguration bereit  Wer diese liefert, ist ihm ziemlich egal
  • 23. Fakten  facter  Standalone-Tool  Plattformübergreifend  Ruby-Bibliothek  System-Informationen (Praktisches Beispiel)  Eigene „facts“ möglich  Good news: IPv6 facts mittlerweile im Master!
  • 24. Nomen es omen  Verwaltete Objekte nennen sich „Resourcen“  Resourcen sind in Gruppen organisiert, wir sprechen hier vom „Type“  Konfiguration oder Codeschnipsel nennen sich „Manifest“
  • 25. Manifeste?  Im Sinne der Ladungsliste eines Schiffes  Was soll drauf sein  Aber nicht: was müssen wir noch aufladen
  • 26. Wie soll so ein Manifest aussehen?  Hübsch. Syntax Highlighting → vim-puppet  Puppet lässt uns ziemlich freie Hand  Es ist eine gute Idee, sich an die „Best Practices“ zu halten http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Best_Practice http://projects.puppetlabs.com/projects/puppet/wiki/Advanced_Puppet_Pattern  Alles in „Modules“ packen  Beispiele suchen! (http://forge.puppetlabs.com/ etc) (Praktische Beispiele)
  • 28. Was fehlt noch zur vollständigen Umgebung?  Zentrale Konfigurationsdatei: puppet.conf  Abschnitt [main] → Pfade  Evtl noch Abschnitte für [master] etc  Distributionsspezifisches (z.b. /etc/defaults/puppet)  Das zentrale Manifest liegt für gewöhnlich unter /etc/puppet/manifests/site.pp
  • 29. Kennenlernen  Master und Agent kennen sich noch nicht!  Client stellt automatisch eine Zertifikatsanfrage  Auf dem Master sichtbar: # puppet cert --list client1.example.com # puppet cert --sign client1.example.com  WICHTIG: Saubere Namensauflösung
  • 30. Schnelltest  Es reicht eine einfache site.pp: node default { notice("Unbelievable, it's really working!") }  Auf dem Master muss im Syslog eine entsprechende Meldung erscheinen, in etwa so: (Scope(Node[default])) Unbelievable, it's really working!
  • 31. Wichtige Begriffe  Catalog: Gesamtheit der Ressourcen, Dateien, Eigenschaften für ein bestimmtes System  Class: Behälter für Ressourcen  Definition, Defined Type: auf Anwendungsebene definierter Resource-Typ (!= native type)  Plugin: eigene Typen, mit Ruby erstellt  Templates: ERB-Dateien, um systemspezifische Konfigurationsdateien erstellen zu können  Variablen: Variablen, aber unveränderlich
  • 32. Serverbetrieb  Out of the box mit webrick – Will man NICHT haben  Alternativ: mongrel  Besser: Passenger (= mod_rails für Apache)  Im Idealfall: fertige Pakete aus Distro  Neue Ansätze: MCollective
  • 34. Danke für Ihre Aufmerksamkeit!