SlideShare ist ein Scribd-Unternehmen logo
Puppet als
Bindeglied zum
Monitoring
Open Source Monitoring Conference
07.10.2010 - Nürnberg
Referent: Birger Schmidt
KURZVORSTELLUNG
WARUM MONITORING UND PUPPET?
WAS IST PUPPET?
WELCHE NACHTEILE?
WIE FUNKTIONIERT PUPPET?
ON TIME
ON TIME
ON TIME
ON TIME
ON TIME
5 SLIDES
8 SLIDES
2 SLIDES
4 SLIDES
2 SLIDES
DESTINATION TIME REMARK
Agenda
WELCHE VORTEILE? ON TIME5 SLIDES
UMSETZUNGSKONZEPT ON TIME
UMSETZUNGSMÖGLICHKEIT ON TIME
2 SLIDES
9 SLIDES
KURZVORSTELLUNG
BOARDING
Kurzvorstellung BIRGER SCHMIDT
  37 Jahre
  seit 2008 bei der NETWAYS GmbH
  Senior Consultant / Trainer
  Dipl. Inf. Uni Rostock und HU zu Berlin
  seit Anfang der 90er Jahre tätig
im Bereich IT-Infrastruktur, Betrieb und Entwicklung
–  Application Management
–  Netzwerk Management
–  Entwicklung im Embedded Bereich
Kurzvorstellung: NETWAYS
  Firmengründung 1995
  GmbH seit 2001
  Open Source seit 1997
  Nagios / Netsaint seit 1999
  24 festangestellte Mitarbeiter
  Spezialisierung in den Bereichen Open Source Systems
Management und Open Source Datacenter Solutions
Leistungsbereiche
  Monitoring
  Performance Management
  Configuration Management
  Service Management
  Knowledge Management
  Asset Management
  Identity Management
  Backup & Datensicherung
  Reporting
  High Availability Lösungen
  Cluster Lösungen
  Loadbalancing
  Virtualisierung
  Speicherlösungen
  Firewalls
  Datenbanken
  Voice over IP
Open Source
Systems Management
Open Source
Data Center Solutions
Managed Services Monitoring HW Konferenzen
  Veranstalter der Open Source Monitoring Conference
  Teilnehmer: 145 (06) 220 (07) 250 (08) 260 (09)
  5 Tracks mit Vorträgen & Workshops
  06. & 07. Oktober 2010 in Nürnberg
  Veranstalter der Open Source Datacenter Conference
  Teilnehmer: 70 (09), 80 (10)
  3 Tracks mit Vorträgen & Workshops
  06. & 07. April 2011 in Nürnberg
Konferenzaktivitäten
WARUM MONITORING
UND PUPPET?
TAKE OFF
Create many similar drops
and monitor every single one automatically.
WOHER KOMMEN DIE TROPFEN?
  Systems Management
–  ein Admin – viele Systeme
  Automatisierung
–  Scalability durch Clone
WAS FÜR CLONE WILL ICH?
  Diskimages / FAI / Kickstart / Autoyast / ...
  Möglichst flexible, generische Ausgangsbasis
WAS FÜR CLONE WILL ICH?
  Diskimages / FAI / Kickstart / Autoyast / ...
  Möglichst flexible, generische Ausgangsbasis
Ein Abbild meiner alten Maschine?
WAS FÜR CLONE WILL ICH?
  Diskimages / FAI / Kickstart / Autoyast / ...
  Möglichst flexible, generische Ausgangsbasis
Ein freies Gleis und ein paar Packages?
WAS FÜR CLONE WILL ICH?
  Diskimages / FAI / Kickstart / Autoyast / ...
  Möglichst flexible, generische Ausgangsbasis
Oder nur das freie Gleis?
WAS FÜR CLONE WILL ICH?
  Diskimages / FAI / Kickstart / Autoyast / ...
  Möglichst flexible, generische Ausgangsbasis
Nein, ein freies Gleis und ein Cockpit!
WAS FÜR CLONE WILL ICH?
  Diskimages / FAI / Kickstart / Autoyast / ...
  Möglichst flexible, generische Ausgangsbasis
Und dann noch einen, der weiß wo lang...
WARUM MONITORING UND PUPPET?
  Systems Management
–  ein Admin – viele Systeme
  Automatisierung
–  Scalability durch Clone
–  Clonen mittels Diskimages / FAI / Kickstart / Autoyast / ...
  Rollenzuordnung
–  ein Diskimage pro Rolle?
–  der Clon wächst in seine Rolle!
  Monitoring Konfiguration
–  Teil der Rollenzuordnung
–  nicht Teil eines Diskimages
   Puppet jumps in
WAS IST PUPPET?
CRUISING
GESCHICHTE
  2005 Reductive Labs „one man show“ von Luke Kanies
  Heute Puppet Labs mit 14 Mitarbeitern
  Sitz in Portland, Oregon, USA
  NETWAYS ist deutscher Schulungspartner
WAS IST PUPPET?
 beschreibend / declarativ
–  es wird definiert wie das System aussehen soll
–  nicht der Weg dahin
WAS IST PUPPET?
  Konfigurationsengine
–  basiert auf Ruby
–  eigene Sprache für Manifest (ralsh)
–  Manifest ist Plaintext
  Automatisierung von Tasks
–  Paketinstallation
–  Anlegen von Benutzer/Gruppen
–  Verteilen von Konfigurationsdateien
  Facter für die Erkennung
–  Puppet kennt das System
–  befüllt Variablen über das System
WIE FUNKTIONIERT PUPPET?
CRUISING
WIE FUNKTIONIERT PUPPET?
WIE KOMMUNIZIERT PUPPET?
  XMLRPC over HTTP(S)
–  Verschlüsselt
–  Zertifikatsbasiert
–  Verwaltung durch Puppet
WELCHE VORTEILE
CRUISING
WO HILFT PUPPET?
  Verwaltung großer Umgebungen
–  Beschreibung der Konfiguration
–  Regelbasiert
  Initial höherer Aufwand, aber:
–  einfaches Massendeployment
–  einfaches Scaleout der Plattform
–  definierter Konfigurationsstand der Clients
WO FUNKTIONIERT PUPPET?
  CentOS
  Debian 3.1 and later
  Fedora Core 2-6
  Fedora 7 and later
  Gentoo Linux
  Mandriva Corporate Server 4
  RHEL 3 and later
  Oracle Linux
  SuSE Linux 8 and later
  Ubuntu 7.04 and later
  BSD
  FreeBSD 4.7 and later
  OpenBSD 4.1 and later
  Macintosh OS X
  Sun Solaris 2.6, 7 and later
  basic Windows support in v2.6
MIT WEM KANN PUPPET?
  Apache
  Asterisk
  AutoFS
  Bacula
  BIND
  DNS
  Courier IMAP/
POP
  denyhosts
  exim
  heartbeat
  iptables
  git
  Linux Vserver
  Lighttpd
  MediaWiki
  munin
  MySQL
  Nagios
  NTP
  OpenVPN
  OpenLDAP
  postfix
  PostfixAdmin
  Shorewall
  snmpd
  SpamAssassin
  SSH Webproxy
  Subversion
  sudo
  Tomcat
  Trac
  Varnish
  Xen 3
  Zope
WARUM PUPPET?
  Puppet
–  vergleichsweise einfach!!
–  hoher Anfangserfolg
–  sehr flexibel
–  einfach erweiterbar
–  leicht mit SVN oder GIT zu Versionieren
WELCHE VORTEILE?
  Configurationmanagement
–  Pakete sind auf allen Systemen gleich
–  Konfigurationen sind durchgängig
–  Zentrale Pflege der Konfiguration
–  Testing möglich
–  schnelle Incidentbehandlung
  Changetracking
–  wer hat was geändert?
–  wann wurde die Änderung vorgenommen?
–  Genehmigungsprozess möglich
  Kein Backup mehr notwendig
–  leider nur theoretisch
WELCHE NACHTEILE
CRUISING
WELCHE NACHTEILE?
  Noch jung
–  wird von Jahr zu Jahr besser ;-)
  Performace Issues
–  Mittels eigenem Webserver zu umgehen
UMSETZUNGKONZEPT
LANDING
UMSETZUNGSKONZEPT
UMSETZUNGSMÖGLICHKEIT
LANDING
WELCHE DATEIEN ZUR KONFIGURATION?
  Hauptkonfigurationsdatei
–  /etc/puppet/puppet.conf
[puppetmasterd]
certname = puppetserver
certdnsnames = puppet
modulepath = /etc/puppet/modules/dist:/etc/puppet/modules/
site
reports = tagmail,store,log
external_nodes = /etc/puppet/nodes/bin/external_nodes.rb
node_terminus = exec
storeconfigs = true
dbadapter = sqlite3
dblocation = /var/lib/puppet/storeconfigs.sqlite
WELCHE DATEIEN ZUR KONFIGURATION?
  Manifest
–  /etc/puppet/manifests/site.pp
node default {
notice("${hostname} has no node definition")
notice("I feel fine at home: ${home}")
}
include monitoring
node 'puppet1' {
notice("I want to be monitored: ${hostname}")
include monitoring::target
}
node 'puppet2' {
notice("I want to be monitored: ${hostname}")
include monitoring::target
}
WELCHE DATEIEN ZUR KONFIGURATION?
  Klasse für Monitoringkonfiguration
–  /etc/puppet/modules/site/monitoring/manifests/init.pp
class monitoring {
# collect resources and populate /etc/nagios/nagios_*.cfg
Nagios_host <<||>>
Nagios_service <<||>>
Nagios_hostextinfo <<||>>
class target {
@@nagios_host { $fqdn:
ensure => present,
alias => $hostname,
address => $ipaddress,
use => "generic-host",
}
...
WELCHE DATEIEN ZUR KONFIGURATION?
  Klassen
–  /etc/puppet/modules/site/monitoring/manifests/init.pp
class monitoring {
...
@@nagios_hostextinfo { $fqdn:
ensure => present,
icon_image_alt => $operatingsystem,
icon_image => "base/$operatingsystem.png",
statusmap_image => "base/$operatingsystem.gd2",
}
@@nagios_service { "check_ping_${hostname}":
use => "check_ping",
host_name => "$fqdn",
}
}
}
WAS IST DAS ERGEBNIS?
  Puppetmaster
–  /etc/nagios/*
  Clients (to be done)
–  Check Plugin Package / Dateiverteilung
–  /usr/local/icinga/libexec/*
–  Nutzer und Zugriff (ssh keys)
  Monitoring Server (to be done)
–  .../icinga/etc/puppet_generated/*
WELCHE DATEIEN ZUR KONFIGURATION?
  Klassen
–  /etc/puppet/modules/site/monitoring/manifests/init.pp
class monitoring {
...
group { icinga:
ensure => "present", gid => 1000;
}
schedule { puppet:
period => hourly, repeat => 6
}
file {
"/etc/passwd":
owner => "root",
group => "root",
mode => 644
}
}
WIE SIEHT EIN MANIFEST AUS?
  Zentrale Verteilung einer Datei
file {
"authorized_keys":
mode => 644,
owner => icinga,
group => icinga,
path => "/usr/local/icinga/.ssh/authorized_keys",
source => "puppet:///files/icinga/.ssh/authorized_keys"
}
  ebenso zentrale Verteilung eines Verzeichnisses
WIE SIEHT EIN MANIFEST AUS?
  Hauptkonfigurationsdatei
import "classes/*"
$server = “puppetmaster.localdomain"
# global filebucket on server
filebucket { main:
server => $server
}
node “puppet1.localdomain" {
include icinga_monitored
}
UMSETZUNGSMÖGLICHKEITEN
  Puppet Manifeste in SVN / GIT
  Syntaxcheck vor commit (pre-commit)
–  vollständiger compile
–  nur syntaxcheck
  Export bei valider Syntax (post-commit)
  Verteilung über Puppetmaster
  bereits fertig:
–  http://projects.puppetlabs.com/projects/puppet/wiki/
Subversion_Commit_Hooks_Patterns
–  http://projects.puppetlabs.com/projects/puppet/wiki/
Puppet_Version_Control
FRAGEN UND ANTWORTEN!?
LANDING
Fragen und Antworten
Jetzt und Hier
NETWAYS GmbH
Deutschherrnstrasse 15-19
90429 Nürnberg
Birger.Schmidt@netways.de
Twitter: twitter.com/netways
www.netways.de
blog.netways.de
www.google.de/search?q=netways
www.google.de/search?q=birger+schmidt

Weitere ähnliche Inhalte

Ähnlich wie OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birger Schmidt

Azure Notebooks
Azure NotebooksAzure Notebooks
Azure Notebooks
TEitelberg
 
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeOSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
NETWAYS
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
B1 Systems GmbH
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
B1 Systems GmbH
 
Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-Packaging
B1 Systems GmbH
 
System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet
B1 Systems GmbH
 
OSDC 2011 | Puppet from Scratch by Thomas Gelf
OSDC 2011 | Puppet from Scratch by Thomas GelfOSDC 2011 | Puppet from Scratch by Thomas Gelf
OSDC 2011 | Puppet from Scratch by Thomas Gelf
NETWAYS
 
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014
Martin Alfke
 
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
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with Ansible
SusannSgorzaly
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
OPITZ CONSULTING Deutschland
 
Grundlagen puppet
Grundlagen puppetGrundlagen puppet
Grundlagen puppet
inovex GmbH
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
B1 Systems GmbH
 
OpenWRT - Überblick
OpenWRT - ÜberblickOpenWRT - Überblick
OpenWRT - Überblick
Westermo Network Technologies
 
Puppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und BasismodulePuppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und Basismodule
inovex GmbH
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
Schlomo Schapiro
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit Vagrant
B1 Systems GmbH
 
Rsyslog deutsche Qualitätsarbeit für Linux Roman Gächter
Rsyslog deutsche Qualitätsarbeit für Linux Roman GächterRsyslog deutsche Qualitätsarbeit für Linux Roman Gächter
Rsyslog deutsche Qualitätsarbeit für Linux Roman Gächter
Désirée Pfister
 
Rsyslog - Deutsche Qualitätsarbeit für Linux
Rsyslog - Deutsche Qualitätsarbeit für LinuxRsyslog - Deutsche Qualitätsarbeit für Linux
Rsyslog - Deutsche Qualitätsarbeit für Linux
Trivadis
 
systemd im Alltag
systemd im Alltagsystemd im Alltag
systemd im Alltag
B1 Systems GmbH
 

Ähnlich wie OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birger Schmidt (20)

Azure Notebooks
Azure NotebooksAzure Notebooks
Azure Notebooks
 
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeOSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
 
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
 
Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-Packaging
 
System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet
 
OSDC 2011 | Puppet from Scratch by Thomas Gelf
OSDC 2011 | Puppet from Scratch by Thomas GelfOSDC 2011 | Puppet from Scratch by Thomas Gelf
OSDC 2011 | Puppet from Scratch by Thomas Gelf
 
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 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)
Puppet: Aufbau einer Puppet Enterprise Umgebung (Webinar vom 28.03.2014)
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with Ansible
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Grundlagen puppet
Grundlagen puppetGrundlagen puppet
Grundlagen puppet
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
OpenWRT - Überblick
OpenWRT - ÜberblickOpenWRT - Überblick
OpenWRT - Überblick
 
Puppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und BasismodulePuppet - Entwicklungsworkflow und Basismodule
Puppet - Entwicklungsworkflow und Basismodule
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit Vagrant
 
Rsyslog deutsche Qualitätsarbeit für Linux Roman Gächter
Rsyslog deutsche Qualitätsarbeit für Linux Roman GächterRsyslog deutsche Qualitätsarbeit für Linux Roman Gächter
Rsyslog deutsche Qualitätsarbeit für Linux Roman Gächter
 
Rsyslog - Deutsche Qualitätsarbeit für Linux
Rsyslog - Deutsche Qualitätsarbeit für LinuxRsyslog - Deutsche Qualitätsarbeit für Linux
Rsyslog - Deutsche Qualitätsarbeit für Linux
 
systemd im Alltag
systemd im Alltagsystemd im Alltag
systemd im Alltag
 

OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birger Schmidt

  • 1. Puppet als Bindeglied zum Monitoring Open Source Monitoring Conference 07.10.2010 - Nürnberg Referent: Birger Schmidt
  • 2. KURZVORSTELLUNG WARUM MONITORING UND PUPPET? WAS IST PUPPET? WELCHE NACHTEILE? WIE FUNKTIONIERT PUPPET? ON TIME ON TIME ON TIME ON TIME ON TIME 5 SLIDES 8 SLIDES 2 SLIDES 4 SLIDES 2 SLIDES DESTINATION TIME REMARK Agenda WELCHE VORTEILE? ON TIME5 SLIDES UMSETZUNGSKONZEPT ON TIME UMSETZUNGSMÖGLICHKEIT ON TIME 2 SLIDES 9 SLIDES
  • 4. Kurzvorstellung BIRGER SCHMIDT   37 Jahre   seit 2008 bei der NETWAYS GmbH   Senior Consultant / Trainer   Dipl. Inf. Uni Rostock und HU zu Berlin   seit Anfang der 90er Jahre tätig im Bereich IT-Infrastruktur, Betrieb und Entwicklung –  Application Management –  Netzwerk Management –  Entwicklung im Embedded Bereich
  • 5. Kurzvorstellung: NETWAYS   Firmengründung 1995   GmbH seit 2001   Open Source seit 1997   Nagios / Netsaint seit 1999   24 festangestellte Mitarbeiter   Spezialisierung in den Bereichen Open Source Systems Management und Open Source Datacenter Solutions
  • 6. Leistungsbereiche   Monitoring   Performance Management   Configuration Management   Service Management   Knowledge Management   Asset Management   Identity Management   Backup & Datensicherung   Reporting   High Availability Lösungen   Cluster Lösungen   Loadbalancing   Virtualisierung   Speicherlösungen   Firewalls   Datenbanken   Voice over IP Open Source Systems Management Open Source Data Center Solutions Managed Services Monitoring HW Konferenzen
  • 7.   Veranstalter der Open Source Monitoring Conference   Teilnehmer: 145 (06) 220 (07) 250 (08) 260 (09)   5 Tracks mit Vorträgen & Workshops   06. & 07. Oktober 2010 in Nürnberg   Veranstalter der Open Source Datacenter Conference   Teilnehmer: 70 (09), 80 (10)   3 Tracks mit Vorträgen & Workshops   06. & 07. April 2011 in Nürnberg Konferenzaktivitäten
  • 9. Create many similar drops and monitor every single one automatically.
  • 10. WOHER KOMMEN DIE TROPFEN?   Systems Management –  ein Admin – viele Systeme   Automatisierung –  Scalability durch Clone
  • 11. WAS FÜR CLONE WILL ICH?   Diskimages / FAI / Kickstart / Autoyast / ...   Möglichst flexible, generische Ausgangsbasis
  • 12. WAS FÜR CLONE WILL ICH?   Diskimages / FAI / Kickstart / Autoyast / ...   Möglichst flexible, generische Ausgangsbasis Ein Abbild meiner alten Maschine?
  • 13. WAS FÜR CLONE WILL ICH?   Diskimages / FAI / Kickstart / Autoyast / ...   Möglichst flexible, generische Ausgangsbasis Ein freies Gleis und ein paar Packages?
  • 14. WAS FÜR CLONE WILL ICH?   Diskimages / FAI / Kickstart / Autoyast / ...   Möglichst flexible, generische Ausgangsbasis Oder nur das freie Gleis?
  • 15. WAS FÜR CLONE WILL ICH?   Diskimages / FAI / Kickstart / Autoyast / ...   Möglichst flexible, generische Ausgangsbasis Nein, ein freies Gleis und ein Cockpit!
  • 16. WAS FÜR CLONE WILL ICH?   Diskimages / FAI / Kickstart / Autoyast / ...   Möglichst flexible, generische Ausgangsbasis Und dann noch einen, der weiß wo lang...
  • 17. WARUM MONITORING UND PUPPET?   Systems Management –  ein Admin – viele Systeme   Automatisierung –  Scalability durch Clone –  Clonen mittels Diskimages / FAI / Kickstart / Autoyast / ...   Rollenzuordnung –  ein Diskimage pro Rolle? –  der Clon wächst in seine Rolle!   Monitoring Konfiguration –  Teil der Rollenzuordnung –  nicht Teil eines Diskimages    Puppet jumps in
  • 19. GESCHICHTE   2005 Reductive Labs „one man show“ von Luke Kanies   Heute Puppet Labs mit 14 Mitarbeitern   Sitz in Portland, Oregon, USA   NETWAYS ist deutscher Schulungspartner
  • 20. WAS IST PUPPET?  beschreibend / declarativ –  es wird definiert wie das System aussehen soll –  nicht der Weg dahin
  • 21. WAS IST PUPPET?   Konfigurationsengine –  basiert auf Ruby –  eigene Sprache für Manifest (ralsh) –  Manifest ist Plaintext   Automatisierung von Tasks –  Paketinstallation –  Anlegen von Benutzer/Gruppen –  Verteilen von Konfigurationsdateien   Facter für die Erkennung –  Puppet kennt das System –  befüllt Variablen über das System
  • 24. WIE KOMMUNIZIERT PUPPET?   XMLRPC over HTTP(S) –  Verschlüsselt –  Zertifikatsbasiert –  Verwaltung durch Puppet
  • 26. WO HILFT PUPPET?   Verwaltung großer Umgebungen –  Beschreibung der Konfiguration –  Regelbasiert   Initial höherer Aufwand, aber: –  einfaches Massendeployment –  einfaches Scaleout der Plattform –  definierter Konfigurationsstand der Clients
  • 27. WO FUNKTIONIERT PUPPET?   CentOS   Debian 3.1 and later   Fedora Core 2-6   Fedora 7 and later   Gentoo Linux   Mandriva Corporate Server 4   RHEL 3 and later   Oracle Linux   SuSE Linux 8 and later   Ubuntu 7.04 and later   BSD   FreeBSD 4.7 and later   OpenBSD 4.1 and later   Macintosh OS X   Sun Solaris 2.6, 7 and later   basic Windows support in v2.6
  • 28. MIT WEM KANN PUPPET?   Apache   Asterisk   AutoFS   Bacula   BIND   DNS   Courier IMAP/ POP   denyhosts   exim   heartbeat   iptables   git   Linux Vserver   Lighttpd   MediaWiki   munin   MySQL   Nagios   NTP   OpenVPN   OpenLDAP   postfix   PostfixAdmin   Shorewall   snmpd   SpamAssassin   SSH Webproxy   Subversion   sudo   Tomcat   Trac   Varnish   Xen 3   Zope
  • 29. WARUM PUPPET?   Puppet –  vergleichsweise einfach!! –  hoher Anfangserfolg –  sehr flexibel –  einfach erweiterbar –  leicht mit SVN oder GIT zu Versionieren
  • 30. WELCHE VORTEILE?   Configurationmanagement –  Pakete sind auf allen Systemen gleich –  Konfigurationen sind durchgängig –  Zentrale Pflege der Konfiguration –  Testing möglich –  schnelle Incidentbehandlung   Changetracking –  wer hat was geändert? –  wann wurde die Änderung vorgenommen? –  Genehmigungsprozess möglich   Kein Backup mehr notwendig –  leider nur theoretisch
  • 32. WELCHE NACHTEILE?   Noch jung –  wird von Jahr zu Jahr besser ;-)   Performace Issues –  Mittels eigenem Webserver zu umgehen
  • 36. WELCHE DATEIEN ZUR KONFIGURATION?   Hauptkonfigurationsdatei –  /etc/puppet/puppet.conf [puppetmasterd] certname = puppetserver certdnsnames = puppet modulepath = /etc/puppet/modules/dist:/etc/puppet/modules/ site reports = tagmail,store,log external_nodes = /etc/puppet/nodes/bin/external_nodes.rb node_terminus = exec storeconfigs = true dbadapter = sqlite3 dblocation = /var/lib/puppet/storeconfigs.sqlite
  • 37. WELCHE DATEIEN ZUR KONFIGURATION?   Manifest –  /etc/puppet/manifests/site.pp node default { notice("${hostname} has no node definition") notice("I feel fine at home: ${home}") } include monitoring node 'puppet1' { notice("I want to be monitored: ${hostname}") include monitoring::target } node 'puppet2' { notice("I want to be monitored: ${hostname}") include monitoring::target }
  • 38. WELCHE DATEIEN ZUR KONFIGURATION?   Klasse für Monitoringkonfiguration –  /etc/puppet/modules/site/monitoring/manifests/init.pp class monitoring { # collect resources and populate /etc/nagios/nagios_*.cfg Nagios_host <<||>> Nagios_service <<||>> Nagios_hostextinfo <<||>> class target { @@nagios_host { $fqdn: ensure => present, alias => $hostname, address => $ipaddress, use => "generic-host", } ...
  • 39. WELCHE DATEIEN ZUR KONFIGURATION?   Klassen –  /etc/puppet/modules/site/monitoring/manifests/init.pp class monitoring { ... @@nagios_hostextinfo { $fqdn: ensure => present, icon_image_alt => $operatingsystem, icon_image => "base/$operatingsystem.png", statusmap_image => "base/$operatingsystem.gd2", } @@nagios_service { "check_ping_${hostname}": use => "check_ping", host_name => "$fqdn", } } }
  • 40. WAS IST DAS ERGEBNIS?   Puppetmaster –  /etc/nagios/*   Clients (to be done) –  Check Plugin Package / Dateiverteilung –  /usr/local/icinga/libexec/* –  Nutzer und Zugriff (ssh keys)   Monitoring Server (to be done) –  .../icinga/etc/puppet_generated/*
  • 41. WELCHE DATEIEN ZUR KONFIGURATION?   Klassen –  /etc/puppet/modules/site/monitoring/manifests/init.pp class monitoring { ... group { icinga: ensure => "present", gid => 1000; } schedule { puppet: period => hourly, repeat => 6 } file { "/etc/passwd": owner => "root", group => "root", mode => 644 } }
  • 42. WIE SIEHT EIN MANIFEST AUS?   Zentrale Verteilung einer Datei file { "authorized_keys": mode => 644, owner => icinga, group => icinga, path => "/usr/local/icinga/.ssh/authorized_keys", source => "puppet:///files/icinga/.ssh/authorized_keys" }   ebenso zentrale Verteilung eines Verzeichnisses
  • 43. WIE SIEHT EIN MANIFEST AUS?   Hauptkonfigurationsdatei import "classes/*" $server = “puppetmaster.localdomain" # global filebucket on server filebucket { main: server => $server } node “puppet1.localdomain" { include icinga_monitored }
  • 44. UMSETZUNGSMÖGLICHKEITEN   Puppet Manifeste in SVN / GIT   Syntaxcheck vor commit (pre-commit) –  vollständiger compile –  nur syntaxcheck   Export bei valider Syntax (post-commit)   Verteilung über Puppetmaster   bereits fertig: –  http://projects.puppetlabs.com/projects/puppet/wiki/ Subversion_Commit_Hooks_Patterns –  http://projects.puppetlabs.com/projects/puppet/wiki/ Puppet_Version_Control
  • 46. Fragen und Antworten Jetzt und Hier NETWAYS GmbH Deutschherrnstrasse 15-19 90429 Nürnberg Birger.Schmidt@netways.de Twitter: twitter.com/netways www.netways.de blog.netways.de www.google.de/search?q=netways www.google.de/search?q=birger+schmidt