Anfang Oktober war es endlich soweit. Die Puppetize 2018 stand unter dem Motto „From configuration management to beyond“ vor der Tür und natürlich war auch eine Delegation der RISC bestehend aus Stefan, Mario und mir am Start.
Bei einem Get together am Vorabend hatten wir die Möglichkeit die Community in einem entspannten Rahmen kennenzulernen. Jason Southgate hat es verstanden sein neues Buch „Mastering Puppet 5“ bestmöglich anzupreisen („Don’t buy it, it’s very bad“) und bei Diskussionen ob nun Cloudformation oder Terraform cooler ist gab es auch noch einige Unstimmigkeiten unter den Teilnehmern. 🙂
Nach einem reichhaltigen Frühstück in den Räumlichkeiten des Compagnietheaters in Amsterdam fing die Puppetize 2018 mit der Opening Keynote von Sandra Hamilton SVP of Customer Success.
Spannend wurde es anschließend im Vortrag von Matt Waxman, VP of Products der die neuen Product Announcements vorgestellt hat. Was erwartet uns also zukünftig bei Puppet?
Ab sofort gibt es statt einer Produktlinie (Puppet Enterprise), nun drei:
Anschließend verkündete Lucy Wyman das Release von Bolt 1.0.
Bolt (https://puppet.com/products/puppet-bolt) ist ein Automatisierungstool, welches es ermöglicht Scripte remote auf mehreren Nodes gleichzeitig auszuführen, ohne dass auf diesen Nodes ein Agent installiert sein muss. Die Steuerung und die Verteilung der Nodes erfolgt über SSH oder WinRM.
Bolt besteht aus mehreren Komponenten: Tasks, Plans und Inventory.
Tasks
Tasks sind einzelne Aufgaben, die auf dem Zielsystem ausgeführt werden sollen. Tasks sind in Modulen organisiert z.B. Hintergrund::setzeHintergrundBild und Hintergrund::resetHintergrundBild. Man könnte Tasks also mit statischen Methoden einer Klasse vergleichen. Parameter werden hierbei entweder direkt beim Taskaufruf mitgegeben:
bolt task run Hintergrund::setzeHintergrundBild image=C:/Temp/background.jpg
oder über Umgebungsvariablen.
Plans
Plans bestehen aus mehreren nacheinander laufenden Tasks. Hierbei können die Rückgabewerte der Tasks dazu verwendet werden, die Eingabewerte des nachfolgenden Tasks zu bestimmen. Beispielsweise könnte man einen Plan erstellen, welcher für die komplette Einrichtung einer Datenbank zuständig ist.
Hierzu hätte man dann die verschiedenen Tasks:
1. MySQL installieren
2. MySQL konfigurieren
3. Datenbank anlegen
So kann man in den einzelnen Tasks auf die Ergebnisse der vorher gelaufenen Tasks zugreifen und entsprechend reagieren.
Inventory
Das Inventory dient zur Verwaltung der Nodes in einzelne Gruppen. So kann man beispielsweise Datenbankserver, Webserver und FileServer in eigene Gruppen einteilen und somit einzelne Tasks nur auf bestimmte Nodes anwenden:
bolt task run mysql::sql database=mydatabase sql=”SHOW TABLES” –nodes db_nodes
Ein Beispiel für ein Inventory-File findet sich unter https://puppet.com/docs/bolt/1.x/inventory_file.html
Es ist nun endlich möglich Tasks agentless per ssh/winrm auszuführen und einen Task Scheduler zu nutzen.
Jobs lassen sich nun direkt in Docker Containern ausführen.
Neues Tool für IT- Führungskräfte um einen Überblick darüber zu erhalten, wie ihre DevOps skalieren. Durch zusammenführen von Daten aus den gängigen DevOps Tools, Daten aus den „State of DevOps“ Reports und (anonymisierten) Daten anderer Insights User werden Visualisierungen erstellt die Unternehmen helfen Engpässe bei Prozessen zu finden. Weiterhin können konkrete Verbesserungsvorschläge gegeben werden.
Bisher ist Insights nur innerhalb der Private Beta verfügbar für die man sich hier anmelden kann:
https://puppet.com/products/puppet-insights
Alle Vorträge des Tages und auch die Highlights der Puppetize in San Francisco und und Sydney lassen sich unter folgendem Link finden:
https://puppet.com/blog-tags/puppetize-live