Seite wählen

NETWAYS Blog

Webinar-Video zum Puppet-Webinar vom 17.10.2013 ist nun online

logo_PuppetWie bereits gestern im Webinar versprochen, haben wir uns um einen schnellen Schnitt und eine rasche Konvertierung des Webinar-Videos gekümmert. Das Video vom Puppet-Webinar ist ab sofort auf YouTube und unserer Webinar-Archivseite zu sehen. Außerdem haben wir die Präsentationsfolien auf slideshare zur Verfügung gestellt.
Alles beides zusammen gibt’s schön aufgeräumt auf unserer Webinar-Seite.

Jetzt schon für die nächsten Webinare registieren:

  • Graphite – 06.11.2013 – 14:00 Uhr
  • Icinga 2 – 13.11.2013 – 14:00 Uhr

Schneller, schöner, besser: LConf 1.3


Wer sich unsere Software gerne tippfrisch aus den git Repositories zieht hat es vielleicht Bemerkt: In den letzten Monaten hat sich bei LConf, unserem LDAP-basierten Icinga/Nagios® Konfigurationstool einiges getan – sowohl im Backend als auch im Frontend. Heute freue ich mich, nach langer Arbeit die RC Version 1.3.0. bekanntgeben zu dürfen.
Alles unter Kontrolle – auch bei großen Setups: 
LConf erlaubt es dem Admin, sein Icinga (natürlich auch Nagios®) Setup grafisch auf einem LDAP Server zu verwalten und sich aus diesem Baum die Monitoringkonfiguration zu exportieren. Durch die Baumstruktur, Aliase und Vererbung lassen sich dabei auch sehr große Monitoring setups bequem und übersichtlich verwalten – und das ohne an ein bestimmtes Frontend zur Datenverwaltung gebunden zu sein.
LConf besteht dabei aus zwei unterschiedlichen Projekten:

  • Einmal dem eigentlichen LConf CLI-Tool, das Icinga Konfigurationen aus dem LDAP Baum erstellen und bestehende Konfigurationen in den LDAP Baum Importieren kann. Auch verteilte Setups können mit LConf erstellt und verwaltet werden. Die Verteilung der einzelnen Konfigurationen auf die Satelliten übernimmt dabei der Exporter selbst.
  • Und zusätzlich unserem (optionalen) Icinga-Web Modul, für alle die es noch bequemer wollen. LConf lässt sich mit zwar mit jedem beliebigen LDAP Editor (oder auch programmatisch von der Kommandozeile aus) bedienen, jedoch bietet das Icinga-Web Frontend einige LConf-spezifische Features, die einem die Verwaltung noch einfacher machen (z.B. besondere Suchfunktionen, Operationen über Verbindungen hinweg, Export der Konfiguration vom Frontend aus, etc. ). Zusätzlich gibt es noch LConf-Web – eine standalone Version die keine vorherige Icinga-Web Installation benötigt.

Das Frontend: Spezifische Dialoge für alle Objekttypen
Die auffälligste Neuerung in der Version 1.3 sind ( neben einer Menge Bugfixes) zahlreiche objektspezifische Dialoge, die einem bei der Konfiguration unterstützen. Jedes LConf spezifische Objekt hat jetzt eine eigene Eingabemaske, die einem bei der Arbeit unterstützt (wer lieber direkt mit den LDAP Attributen arbeitet, kann das jedoch immer noch).
Hier spare ich mir die Worte und lasse einige der neuen Dialoge für sich sprechen:
         
Zusätzlich gibt es natürlich die bewährten Features: Aliaserstellung/Aktualisierung, einfaches Arbeiten mit Drag&Drop, serverübergreifende Operationen, Export aus der Oberfläche, bequeme Filter- und Suchfunktionen, uvm.
Das Modul samt Doku und Bugtracker ist wie immer unter netways.org zu finden. Die Standalone Version vom LConf-Web ist derzeit noch in Bearbeitung, folgt aber in den nächsten Tagen.
Das Backend: Schneller und aufgeräumt
Im Backend hat Tobias zahlreichen Bugs den Garaus gemacht und nebenbei viel von der Codebasis aufgeräumt und umgeschrieben. Das Ergebnis kann sich sehen lassen: Neben kosmetischen Änderungen bietet Version 1.3 einen viel schnelleren Export und jetzt auch die Möglichkeit, Templates in die Vererbung mit einzubeziehen.
Obwohl letzteres wohl eines der gefragtesten Features im LConf ist, beeinflusst es doch das Ergebnis des Exportes stark. Aus diesem Grund ist das Feature standardmäßig Deaktiviert und die 1.3. Version als RC Version gekennzeichnet.
Das heisst: Die  Version ist zwar stabil, kann durch das ggf. andere Verhalten jedoch ein anderes Ergebnis als die Version 1.2 im Export liefern, sollte man das Vererbungsfeature Scharf schalten. Das sollte aber nicht vom Herunterladen und Verwenden abhalten (eher ermutigen!) – ein Blick in die Dokumentation schadet dabei aber nie.

SSH key Verwaltung mit Puppet

Viele Administratoren benutzen SSH und melden sich jeden Tag an vielen Maschinen mit unterschiedlichen Passwörtern an.
Das dauert zum einen lange und zum anderen verleitet es einen möglichst kurze, einfache Passwörter zu benutzen.
Die bessere Variante ist, sich per public key einzuloggen.
Sofern man nicht schon einen key hat, z.B. in ~/.ssh, kann man sich einen anlegen.

[root@srv ~]# ssh-keygen

Der public key wird anschließend auf den Server gelegt, den privaten behält man für sich! Es gibt außerdem zwei verschiedene Ansätze: Wenn man sich anmeldet, kann man entweder sofort root sein, oder man bleibt erstmal normaler Benutzer und kann sich später zum root machen.
Nun möchte man natürlich nicht jeden Server per Hand konfigurieren, sonst hat man die Zeitersparnis ganz schnell aufgebraucht. Aber deswegen gibt es ja Puppet, mit dem man Linuxserver zentral konfigurieren kann.

Wir legen uns drei Klassen in Puppet an.

1.) ssh

Mit dieser Klasse wird sichergestellt, dass der ssh-daemon installiert ist, läuft und eine gültige Konfiguration hat.

class ssh {
package {'openssh-server':
ensure => 'present',
}
service {'sshd':
name => 'ssh',
require => Package['openssh-server'],
ensure => 'running',
enable => 'true',
hasstatus => 'true',
hasrestart => 'true',
subscribe => File['/etc/ssh/sshd_config']
}
file {'/etc/ssh/sshd_config':
ensure => 'present',
source => 'puppet:///files/etc/ssh/sshd_config-new',
owner => 'root',
group => 'root',
mode => '644',
}
}

Es ist wichtig, dass für die Authentifizierung als root in der sshd_config unter anderem folgende Werte gesetzt sind:

PermitRootLogin yes
PubkeyAuthentication yes

Außerdem, damit man bei der root Anmeldung immer sieht wer sich genau anmeldet:

LogLevel VERBOSE

2.) ssh keys für root Anmeldung

Hier werden die keys in /root/.ssh/ssh_authorized_key geschoben. Man kann sich anschließend mit

 ssh root@system  

anmelden ohne das Passwort einzugeben.

class users_root {
ssh_authorized_key {
'Max_Mustermann':
ensure => 'present',
user => 'root',
key => 'vnjklvfAVFNJAAAAAAAAKÖASFV+vfdnjklas/
vfnjklvslöoVFSJOASvmklvaäüvfadhnjuiAAAAyYZH7b9eDNVehtL87t5lJ199IfrU7Tw7+58zAiyYZH7b9eDNVehtL87t5l
J199IfrU7Tw7+58zAivmnjkövfaslAAAA/vnfjakiölvsjkölvfadbnjkö/++vasmnjköv/BGDSAvnkljbdaBFAFDEnjoäöba
BAEjnbiobhuzipy--BAbujpöbhuip//bnjauip  vfda/VNÖASÖDKINAAAAsvmklötrrehhjj55öybö',
type => 'ssh-rsa';
}
}

3.) ssh keys für user Anmeldung

In dieser Klasse werden auf allen Systemen Benutzer angelegt und anschließend der public key verteilt.

class users_user {
group {'Firma':
ensure => 'present',
gid => '40000',
}
group {'Firma-IT':
ensure => 'present',
gid => '40001',
}
#Max Mustermann
user {Max_Mustermann':
ensure => 'present',
managehome => 'true',
shell => '/bin/bash',
uid => '35123',
gid => 'Firma',
groups => 'Firma-IT'
}
ssh_authorized_key {'Max_Mustermann':
ensure => 'present',
user => 'Max_Mustermann',
key => 'vnjklvfAVFNJAAAAAAAAKÖASFV+vfdnjklas/
vfnjklvslöoVFSJOASvmklvaäüvfadhnjuiAAAAyYZH7b9eDNVehtL87t5lJ199IfrU7Tw7+58zAiyYZH7b9eDNVehtL87t5l
J199IfrU7Tw7+58zAivmnjkövfaslAAAA/vnfjakiölvsjkölvfadbnjkö/++vasmnjköv/BGDSAvnkljbdaBFAFDEnjoäöba
BAEjnbiobhuzipy--BAbujpöbhuip//bnjauip  vfda/VNÖASÖDKINAAAAsvmklötrrehhjj55öybö',[/code]
type => 'ssh-rsa',
require => User['Max_Mustermann']
}
Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Zentrales Konfigurationsmanagement? – Puppet machts möglich

Möchten Sie Ihre Systeme auf all Ihren Servern synchron halten?
Passiert es Ihnen auch, dass Sie bei regelmäßig wiederkehrenden Aufgaben, wie Konfigurationsänderungen oder auch Paketinstallationen vergessen alle Systeme des gleichen Typs, zum Beispiel alle Knoten eines Mailserverclusters mit anzupassen? Sind Sie auf der Suche nach einer zentralen Lösung für Ihr Konfigurationsmanagement?
Puppet machts möglich – Ein Open-Source-Tool angepasst an Ihre Bedürfnisse. Aufgaben werden nicht mehr manuell durchgeführt, sondern einmal an einer Stelle geändert und alle Systeme, die zum Erhalt der Dateien oder der Pakete konfiguriert sind erhalten die neue Ausführung kurze Zeit später.
Puppet bietet auch viele Features die beispielsweise mit cfengine nicht oder auch nur umständlich zu realisieren sind, wie beispielsweise: (wahlweise zentrales) Backup geänderter Dateien, Verwaltung von Benutzern und Gruppen, Erweiterbarkeit durch eigene Plugins, die vom Server verteilt werden, integrierter Fileserver für Konfigurations-Dateien…
Noch haben wir Plätze frei…
Wenn auch Sie von Puppets Möglichkeiten profitieren möchten, können Sie alles rund um das Programm und um dieses erfolgreich anzuwenden, in unserer NETWAYS Schulung lernen.
Anmeldungen, gleich zum nächsten Termin am 13. – 15. September 2011 sind unter: http://www.netways.de/de/units/training/puppet/anmeldung/ möglich.
Weitere Informationen, Schulungsinhalte, Preise und Leistungen finden Sie auf unserer Homepage

NETWAYS Schulung: Profitieren auch Sie vom Konfigurationsmanagement mit Puppet

In der NETWAYS Puppet Schulung geht es um das Zauberwort Automatisierung!
Bei einer großen Anzahl von Servern ist es nicht einfach alle Systeme synchron zu halten. Noch ist dies über einen zentralen Installationsserver möglich der einen fest definierten System und Paketzustand abbildet. Allerdings vergisst man bei regelmäßig wiederkehrenden Aufgaben, wie Konfigurationsänderungen oder auch Paketinstallationen leicht alle Systeme des gleichen Typs, zum Beispiel alle Knoten eines Mailserverclusters mit anzupassen. Um das zu verhindern ist eine zentrale Stelle für Konfigurationsdateien unumgänglich. Puppet ist also ein Open-Source-Tool für genau diesen Zweck. Aufgaben werden nicht mehr manuelle durchgeführt, sondern einmal an einer Stelle geändert und alle Systeme, die zum Erhalt der Dateien oder der Pakete konfiguriert sind erhalten die neue Ausführung kurze Zeit später.. Es ist auf allen Unix-artigen Systemen lauffähig und die Konfigurationsmöglichkeiten erstrecken sich z.B. auch auf Apple-Rechnern mit MacOS X. Puppet bietet viele Features die beispielsweise mit cfengine nicht oder auch nur umständlich zu realisieren sind, wie beispielsweise: (wahlweise zentrales) Backup geänderter Dateien, Verwaltung von Benutzern und Gruppen, Erweiterbarkeit durch eigene Plugins, die vom Server verteilt werden, integrierter Fileserver für Konfigurations-Dateien
In unserer Schulung erfahren Sie alles um Puppet erfolgreich anzuwenden:

  • Puppet und Puppetmaster Konfiguration
  • Ressource-Typen und das Resource Abstraction Layer
  • Virtual Resources und gespeicherte Configs
  • Meta-Parameter, Abhängigkeiten und Events
  • Klassen, Module und Definitionen
  • Tags und Umgebungen
  • Puppet Sprachmuster und Best Practices
  • Puppet in der aktuellsten Version

Zudem erhalten Sie ein All inclusive Paket welches folgende Leistungen enthält:

  • 3 Tage (3 Übernachtungen)
  • Vorübernachtung für eine angenehme Anreise
  • Übernachtung und Verpflegung
  • Schulungsnotebook und -Unterlagen

Weitere Informationen finden Sie auf unserer Homepage
Anmeldungen beispielsweise gleich zum nächsten Termin am 24.-26. Mai 2011
sind unter: http://www.netways.de/de/units/training/puppet/anmeldung/ möglich