Seite wählen

NETWAYS Blog

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.

Puppentheater in München

Eine neue Konferenz, ein neuer Blogpost. Diesmal berichte ich von unserer Winteredition des Puppetcamp aus München.
Für mich begann die Konferenz bereits am Mittwoch, allerdings nicht als Teilnehmer sondern als Vortragender bei „Puppet getting started“. Wenn man einen Consultant nervös machen will muss man einfach Stichwörter verwenden wie „mit 50 Leuten ausgebucht“, „auf Englisch“, „2,5 Stunden“, „Kamera-Aufzeichnung“. Trotzdem sollte es mir gelungen sein den Teilnehmer ein paar interessante Tools vorzustellen und ein paar Tipps zum Design ihrer Umgebung, ihres Workflows und ihrer Module zu geben.
Donnerstag startete dann mit der üblichen Begrüßung durch Bernd bevor Ralph Luchs von Puppet Labs in der Keynote eine kurze Einführung in Puppet und Puppet Enterprise gab. Da die Mehrheit der 170 Teilnehmer bereits mit Puppet vertraut waren, waren wohl vor allem kleinere Informationshäppchen interessant. Schön finde ich das Puppet Armatures Projekt, dass zeigt wie viel Einfluss die Community auf die Entwicklung von Puppet nehmen kann. Oder auch das Online-Training, welches zwar keinen Trainer ersetzen kann, den man mit Fragen löchert, aber doch sehr hilfreich ist für den Einstieg.
Interessant war der Vortrag von David Mytton, der gezeigt hat wie Server Density Puppet und MCollective nutzt um restriktive Berechtigungen für die zuständigen Administratoren umzusetzen und es ihnen gleichzeitig erleichtert ihre Arbeit zu tun. Zusätzlich wird es genutzt für Failover, Simulation von Ausfallszenarios und zur Unterstützung der Entwicklung.
Tom Doran von Yelp gab einen sowohl interessanten als auch amüsanten Vortrag rund um die Modul-Entwicklung. Und mal wieder landet etwas auf meiner ToDo-Liste: Parameter-Klassen durch „Data in Modules“ ersetzen. Außerdem möchte auch ich die Stdlib von Puppet Labs jedem ans Herzen legen.
In seinem Vortrag gab David Lutterkort von Puppet Labs einen tieferen Einblick in Razor, warum dieses einem Rewrite unterzogen wurde und wie man eine Virtualisierungsplattform wie VMware vSphere oder Openstack automatisiert mit Razor aufsetzt. Zukünftig soll es auch möglich sein BIOS-Updates zu steuern, andere Systeme mit Events zu befüllen oder Powermanagement von zentraler Stelle zu betreiben.
Rhommel Lamas von 3scale Networks zeigte ein paar andere Ansätze zum Aufbau der Puppetumgebung mit dem Schwerpunkt auf Skalierbarkeit. Auch wenn ich diese nicht für jede Umgebung empfehlen kann, waren doch Lösungsansätze dabei die auch für andere interessant sein könnten.
In seinem Vortrag „Workflow story: Theory versus Practice in Large Enterprises“ zeigte Marcin Piebiak von Linux Polska die Gründe dafür auf, dass Puppet helfen kann rechtliche Anforderungen zu erfüllen. Aber die Organisationen, die solchen Anforderungen unterliegen, haben natürlich besondere Arbeitsabläufe. Antworten auf die Fragen, die sich dadurch stellen, waren das Hauptthema des Vortrags.
Zum Abschluss gab uns Tom einen tieferen Einblick in das Orchestration-Framework MCollective. Wie immer unterhaltsam, informativ und vor allem viel Input.
P.S.: Ich möchte an der Stelle auch noch allen gratulieren, die die Chance zur kostenlosen Puppet-Zertifizierung genutzt und bestanden haben. Insbesondere unserem Tom, der nun auch zertifizierter Puppet Developer ist!

Dirk Götz
Dirk Götz
Principal Consultant

Dirk ist Red Hat Spezialist und arbeitet bei NETWAYS im Bereich Consulting für Icinga, Puppet, Ansible, Foreman und andere Systems-Management-Lösungen. Früher war er bei einem Träger der gesetzlichen Rentenversicherung als Senior Administrator beschäftigt und auch für die Ausbildung der Azubis verantwortlich wie nun bei NETWAYS.

Weekly Snap: PuppetCamp Munich, Mac Resets & Puppet Course Online

weekly snap7 – 11 October was packed with events – in the lead up to the OSMC and PuppetCamp Munich, we dug into online instruction on Puppet and LConf while sharing a few Apple Mac resets on the side.
With just 15 days to the OSMC, Eva shared Mike Adolph’s presentation on “Monitoring Behavior Driven Infrastructures with Cucumber-Nagios”.
Georg rounded up interested participants for a webinar on the Icinga/Nagios configuration tool, LConf and uploaded the video promptly thereafter.
Markus announced the upcoming PuppetCamp III on 28 November in Munich while Silke unveiled our new online Puppet Fundamentals course in cooperation with the Media Linux Academy.

Weekly Snap: CeBIT Stand & PuppetCamp, Icinga / Nagios & Puppet Courses

weekly snap18 – 22 February was all about events, workshops and training courses in Puppet, Icinga / Nagios and development.
Eva began by counting 58 days down to the OSDC with Christian Winkler’s presentation on “Ultra performant websites with varnish MP4”.
She also announced NETWAYS’ CeBIT stand whereabouts this year and reminded interested speakers to submit their talks to the Puppet Camp 2013 Call for Papers before 15 March.
Puppet Labs then trained our Puppet trainers Sebastian and Thomas in preparation for the upcoming Puppet courses they’ll be running.
Continuing with courses, Eva dished the details on Dirk and Christian’s three Nagios / Icinga workshops with iX.
Lastly, Markus shared his .vimrc and favourite VIM addons as our dev team re-emerged from their two-day blue-sky think camp with new processes and photos to show.

Warum iOS6 und Passbook unbedingt gebraucht wird

Ich muss ehrlich sein; es gehört vermutlich noch ein dickes Vielleicht hinter den Titel des Blogposts, aber ich wollte Euch ja hier haben.

Möglicherweise hat der ein oder andere Leser bereits die neue Passbook-App bemerkt, die Apple im Anhang zu iOS 6 auf ihren Geräten verbreitet hat. Da es bei uns weder Starbucksgutscheine noch anderweitige, für mich interessante Anwendungsbeispiele gibt, wurde sie einfach ein paar Screens nach hinten geschoben.
Was ist Passbook eigentlich: Dabei handelt es sich um die Verteilung von fest definierten Paketstrukturen mit der Endung pkpass. Diese werden dann vom iOS-Device erkannt und dem elektronischen Wallet-Manager Passbook hinzugefügt. Vereinfacht bedeutet dies einen großen Haufen an Dateien in definiertem Format, die dann gezipped verteilt werden.

Das eigentlich witzige daran ist das dahinter liegende Framework, dass auch spätere Aktualisierung von Tickets, Gutscheinen und anderen Karten via Webservice ermöglicht. So können Status der Veranstaltung, Räume oder sonstige Infos automatisch an den Eigner des Tickets gesendet werden. Im Notification-Center bekommt man dann einen Hinweis auf Änderung und kann sich diese dann auch gleich eingekreist darstellen lassen. Verbindet man das Ticket noch mit einer bestimmten Location, poppt das Ticket automatisch bei Erreichung auf und der Ticketeigner lässt sich mit einer individuellen Nachricht willkommen heissen.
Wo wir sind ist vorne und deshalb haben wir gleich mal zwei Passbooks für die kommende OSMC und das PuppetCamp erstellt. Einfach den QR-Code scannen oder den Link mit dem Mobile-Device aufrufen und schon sollte das digitale Ticket bei Euch landen. Eifrige OSMC-Restplatzsucher muss ich beim Gedanken sich doch noch Zutritt zu verschaffen leider enttäuschen. Wir vertrauen nur unserem Ticket-System und es handelt sich mehr um einen Feldversuch 🙂

QR-Code für die OSMC

QR-Code für das PuppetCamp

Wer sich nicht in die API einarbeiten oder stundenlange Development-Guidelines lesen möchte, der findet bspw. mit PassK.it einen Online-Editor für die Erstellung solcher Karten. So lassen sich in ein paar Minuten Tickets zusammenklopfen und ausprobieren.
Mehr Infos über die Funktionsweise finden sich im Apple-Developer-Bereich.
Danke an Martin Eichenberg, der mich heute in einem inspirierendem Telefongespräch darauf gebracht hat!

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.