Select Page

NETWAYS Blog

Puppet Camp Berlin: Wir haben ein Programm für euch!

PuppetCamp BlogEs ist so weit! Wir haben ein Programm zu verkünden!
Diesmal werden uns Referenten wie Andrea Giardini von CERN oder Pedro Pessoa von Server Density beim Puppet Camp lauter Dinge erzählen, von denen wir bisher noch gar nicht wussten, dass wir sie dringend wissen wollen. Wollen wir aber!
Außerdem möchten und werden wir mehr über Rapid Testing Setups for Puppet von Felix Frank hören und Sebastian Reitenbach von Black Bridge erklärt uns, wie man in weniger als einem Jahr zum Master of Puppets wird. Nigel Kersten von Puppet Labs höchstselbst, erzählt uns in seiner Keynote, was generell grad so bei Puppet abgeht.
Das gesamte Programm gibt’s hier.
Und anmelden könnt und solltet ihr euch natürlich auch.

OSDC 2015: Volle Kraft voraus

OSDC Logo mit weißem Rand-66Es ist wieder so weit: wir haben ein Programm für die OSDC gezaubert und werden jetzt aller Welt davon berichten. Los geht’s:
Vom 21. bis 23. April sind wir wieder ultra megamäßig in Berlin am Start und feiern die Tatsache, dass es myriaden von Möglichkeiten gibt, komplexe IT Infrastrukturen mit Open Source zu entkomplizieren.
Die Menschen, die unseren kleinen Partydampfer zielsicher in den Hafen steuern, stehen jetzt auch fest. Mit an Bord der MS Open Source sind: Kapitän Nigel Kersten, die Nautischen Offiziere Mitchell Hashimoto und Bernd Mathiske, sowie die Steuermänner Marco Ceppi, David Norton und Kelsey Hightower. Fester Bestandteil unseres Shanty Chors auf Deck sind inzwischen Kris Buytaert, Jan-Piet Mens, Kristian Köhntopp, Martin Gerhard Loschwitz und Schiffsarzt Doc Udo Seidel.
Volle Kraft voraus heißt es auch bei unseren Workshops Vagrant, Logstash und Docker. Wer hier noch dabei sein will, kann online anheuern. Gleiches gilt für die zusätzliche Teilnahme am Puppet Camp.
Na denn: Schiff Ahoi!

Die Puppen tanzen im Rheinland

Wir sind wieder auf Tour ins Rheinland, diesmal geht die Fahrt nach Düsseldorf zum Puppet Camp. Das Netways Team machte sich am Mittwoch Morgen vollgepackt auf den Weg, um bereits schon nachmittags im Tagungshotel den Welcome Desk einzurichten und unzählige Kabel und Steckdosen zu verlegen. Auch der Haustechniker legte sich für uns ganz schön ins Zeug! 


Thomas bereitete indes seinen Puppet Kick Off Workshop vor, der den Teilnehmern einen lehrreichen und informativen Start für das heutige Puppet Camp geben soll. Die Teilnehmer des Workshops waren alle sehr begeistert und haben Tom mit Fragen überhäuft.
Alle Teilnehmer sind trotz Flug- und Bahnstreik gut angekommen und Luke Kanies hat soeben das Puppet Camp eröffnet.

 

Hiera: Welche Daten bekommt Puppet?

Wie im erstem Teil der Blogserie erklärt kann man mit Hiera Daten und Puppetmodule trennen. Wichtig dabei ist, dass die Daten in Abhängigkeit von Eigenschaften von Hosts gespeichert und extrahiert werden können (z.B. Hostname, Betriebssystem, Hersteller des Raidcontrollers usw.). Somit kann man nicht nur in den Puppet Klassen selbst sondern auch im Backend auf verschiedenen Eigenschaften der Server reagieren. Dabei kann man alle Fakten verwenden die von facter -p geliefert werden und die von außen hinzu gegeben werden, z.B. durch einen external node classifier (ENC) wie Foreman.
Im erstem Teil wurde ein einfaches Beispiel einer Hiera-Konfiguration gezeigt. In komplexeren Umgebungen werden die Daten nicht aus einer Datei sondern je nach Fakten aus einer ganzen Hierarchie aus YAML Dateien oder anderen Backends angezogen. Zudem können die selben Daten in den verschiedenen Hierachiestufen wieder überschrieben oder zusammengefasst werden. Zum Beispiel soll für alle meine Server ein Backup erstellt werden, weshalb der Key “bareos::ensure: present” ganz oben in der Hierarchie gesetzt wird (base.yaml). Natürlich gibt es Ausnahmen, weshalb weiter unten in der Hierachie der selbe Key auf “absent” gestellt wird, was sicherstellt, dass Bareos nicht installiert und konfiguriert wird. Je nach Hierachie kann das ganze schnell unübersichtlich werden. Welche Daten Puppet aus Hiera bekommt, lässt sich aber trotzdem einfach und schnell herausfinden, indem man hiera in der Shell aufruft. Als Parameter muss man die Hiera Konfigurationsdatei angeben und natürlich den Namen des Schlüssels der geholt werden soll.

 hiera -c /etc/puppet/hiera.yaml "bareos::ensure" 

Wenn wir als Beispiel die hiera.yaml aus dem ersten Teil verwenden, müssen wir leider feststellen, dass keine Daten gefunden werden, da wir die benötigen Fakten environment, operatingsystem bzw. fqdn nicht an Hiera übergeben. Die Fakten kann man manuell an Hiera übergeben, entweder als key=value Paare direkt beim Aufruf oder besser in Form einer yaml (-y facts.yaml) oder json Datei (-j facts.json).

$ cat facts.yaml
environment: production
::fqdn: "server1.netways.de"
::operatingsystem: Debian

Diese Daten werden normalerweise von den Hosts geliefert und müssen hier manuell übergeben werden:

hiera -y facts.yaml -c /etc/puppet/hiera.yaml -h bareos::ensure

Viel wichtiger ist aber auf welche Art und Weise man Daten aus Hiera extrahieren kann. Verwendet man den Parameter -h, werden die Daten als merged Hash zurückgegeben, d.h. Keys die auf mehreren Ebenen existieren, werden zu einem Hash zusammengeführt, wobei bei Konflikten der erst gefundene Key verwendet wird. Verwendet man den Parameter -a, werden die Daten als flattend Array zurückgeliefert, das bedeutet, dass Keys die auf mehreren Ebenen gefunden werden, zu einem gemeinsamen Array zusammengeführt werden. Bei einem Aufruf ohne Parameter wird einfach der zu erst gefunden Key verwendet.
Passend zum Thema darf ich euch noch an das PuppetCamp in Düsseldorf am Donnerstag erinnern!

Achim Ledermüller
Achim Ledermüller
Senior Manager Cloud

Der Exil Regensburger kam 2012 zu NETWAYS, nachdem er dort sein Wirtschaftsinformatik Studium beendet hatte. In der Managed Services Abteilung ist er für den Betrieb und die Weiterentwicklung unserer Cloud-Plattform verantwortlich.