www.netways.de
Lennart Betz
20.06.2013 | Nagios Workshop 2013
Puppet konfiguriert Nagios und Icinga
Kurzvorstellung
www.netways.de
Bucklige Brotspinne
www.netways.de
Kurzvorstellung
Lennart Betz
40 Jahre
Dipl.-Math. Leibniz Universität Hannover
seit Mai 2011 bei Netways
IT Historie
Commodore 64
Slackware 1.0.1 (August 1993, 40 Disketten)
Winter Games Biathlon 1:36
www.netways.de
Puppet Camp München 2013
28. November 2013
Barcamp für Puppet Admins
www.netways.de/puppetcamp
Open Source Monitoring Conference
23. – 24. Oktober 2013
Veranstalter der Open Source Monitoring
Conference
Teilnehmer 2012: 260
2 Tracks mit Vorträgen & Workshops
NETWAYS Konferenzen
Warum Puppet?
www.netways.de
Werkzeug zum Konfigurationsmanagement
Reflektion der eigenen Arbeitsweisen
Alle Systeme sind gleich?
Abstraktionsschicht
Wer ist eigentlich dieser Puppet?
www.netways.de
manuelle Konfiguration
Golden Images
Software Pakete
eigene Skriptsammlung
Warum Puppet?
www.netways.de
#! /bin/sh
USER=$1; GROUP=$2; HOME=$3
if [ 0 -ne $(getent passwd $USER > /dev/null)$? ]
then useradd $USER --home $HOME --gid $GROUP -n; fi
OLDGID=`getent passwd $USER | awk -F: '{print $4}'`
OLDGROUP=`getent group $OLDGID | awk -F: '{print $1}'`
OLDHOME=`getent passwd $USER | awk -F: '{print $6}'`
if [ "$GROUP" != "$OLDGID" ] && [ "$GROUP" != "$OLDGROUP" ]
then usermod --gid $GROUP $USER; fi
if [ "$HOME" != "$OLDHOME" ]
then usermod --home $HOME $USER; fi
Warum Puppet, ein Skript tuts auch!
www.netways.de
user {'gonzo':
ensure => present,
gid => 'sysadmin',
home => '/home/elmo',
managehome => true,
}
Puppet…
www.netways.de
Abstraktion
Portabilität (Linux, Solaris, BSD, …)
Integrität
Reproduzierbarkeit
Konsistenz
Automation
Fortführung von Provisionierung
Reduktion
Arbeitsaufwand
Zeit
Warum Puppet?
Monitoring?
www.netways.de
Alles in einem Schritt
Verkürzung der Kommunikationswege
Monitoring?
Puppetrundgang
www.netways.de
Funktionsweise
www.netways.de
Definition
Resourcen werden erst definiert
class apache {
package { ‘apache‘: }
}
Deklaration
und danach je Knoten deklariert
node ‘host1.local‘ {
include apache
oder
class { ‘apache‘: }
}
Funktionsweise
www.netways.de
Typen
Package
Service
File
User/Group
Exec
…
nagios_host, nagios_service, …
Provider
ein Typ kann mehrere Provider haben
Resources
www.netways.de
Types und Providers
www.netways.de
Klasse
Ansammlung von Resources
Module
mehrere Klassen zusammengefasst
Manifest
Menge von Modulen
Das Kapital
www.netways.de
require, before
notify, subscribe
package { ‘icinga‘: ensure => present }
File { ‘/etc/icinga/icinga.cfg‘:
ensure => file,
content => ‘….‘,
require => Package[‘icinga‘],
}
Service { ‘icinga‘:
ensure => running,
…
subscribe => File[‘/etc/icinga/icinga.cfg‘],
}
Abhängigkeiten
www.netways.de
Klassen lassen sich je Knoten nur einmal deklarieren
deshalb defined Resources
defined apache::vhost (
$docroot,
$options = “Indexes MultiViews“
) {
ensure => present,
file { ‘/etc/apache2/vhostd.d/$name.conf‘:
…
}
Defined Resources
www.netways.de
Definition ohne sofortige Ausführung
Realisierung erfolgt zu selbstgewählten Zeitpunkt
Realisierung auch mit Bedingungen
@user { ‘gonzo‘:
groups => [ ‘sysadmin‘, ‘user‘ ],
}
User <| groups == “sysadmin“ |> { ensure => present }
Virtuelle Resources
www.netways.de
Virtuelle Resources, nur knotenübergreifend
Benötigt Stored Configuration
Backends
SQLite3
MySQL
Postgres
PuppetDB
Exported Resources
Icinga Modul
www.netways.de
Modul
Kleines Beispiel
Live Demo
Fragen?
www.netways.de
NETWAYS GmbH
Deutschherrnstrasse 15-19
90429 Nürnberg
Tel: +49 911 92885-0
Fax: +49 911 92885-77
Email: info@netways.de
Twitter: twitter.com/netways
Blog: blog.netways.de
?Fragen und
Antworten

Icinga mit Puppet - Hamburg 2013