GitLab-CI / YAML – Write less with Anchors, Extends and Hidden Keys

GitLab-CI / YAML – Write less with Anchors, Extends and Hidden Keys

Have you ever wanted to execute a GitLab-CI job for multiple operating systems and just copied every line of YAML multiple times?
Anchors, extends and hidden keys are coming to rescue!

Let’s say you have two jobs and the only difference between them being a single environment variable:

stages:
  - echo

echo-hello:
  stage: echo
  script:
    - echo $ECHO_TEXT
  variables: 
    ECHO_TEXT: "Hello world!"

echo-bye:
  stage: echo
  script:
    - echo $ECHO_TEXT
  variables: 
    ECHO_TEXT: "Bye bye!"

Anchors and extends

Writing the same job two times can already get quite messy and hard to maintain. The more jobs you add, the worse it gets.
But don’t worry, YAML has got you covered. Anchors and extends let you reuse parts of your config and extend on them.

In this example, we create the echo-hello job and extend on it in the echo-bye task:

stages:
  - echo

echo-hello: &echo #create an anchor named "echo"
  stage: echo
  script:
    - echo $ECHO_TEXT
  variables: 
    ECHO_TEXT: "Hello world!"

echo-bye:
  <<: *echo #use the anchor created above and extend it by using "<<"
  variables: 
    ECHO_TEXT: "Bye bye!"

Templating with hidden keys

One thing you can do to further improve on that is, by using a separate task just for templating using hidden keys.
Hidden keys can be defined in YAML using a . in front of a keys name. This prevents GitLab-CI from executing a job and allows us to use it as a template.

In our last example, we create an echo template job containing our stage and script. The echo job is then extended on in echo-hello and echo-bye:

stages:
 - echo

.echo: &echo #keys (jobs in this case) with a dot in front are hidden keys and won't be executed by GitLab
  stage: echo 
  script: 
    - echo $ECHO_TEXT  

echo-hello: 
  <<: *echo 
  variables:  
    ECHO_TEXT: "Hello world!"  

echo-bye: 
  <<: *echo  
  variables: 
    ECHO_TEXT: "Bye bye!"

Some real world examples can be found in our public Icinga 2 packaging repositories: https://git.icinga.com/packaging/rpm-icinga2

Noah Hilverling
Noah Hilverling
Developer

Nachdem Noah bei einer vierjährigen Exkursion nach Belgien seine Liebe zum Programmieren entdeckte, holte der gebürtige Euskirchener innerhalb kürzester Zeit gleich zwei Schulabschlüsse nach. Danach verließ Noah sogar den schönen Chiemsee, um sich ab September 2016 im Rahmen der Ausbildung zum Fachinformatiker für Anwendungsentwicklung bei NETWAYS voll und ganz dem Programmieren hinzugeben und viele unterschiedliche Erfahrungen zu sammeln. Wenn er mal nicht am Programmieren und Zocken ist, brettert er mit seinem Snowboard die Pisten runter,...
OpenStack made easy – Snapshots erstellen, rotieren, einspielen

OpenStack made easy – Snapshots erstellen, rotieren, einspielen

This entry is part 4 of 4 in the series OpenStack made easy

Früher oder später gelangt wohl jede/r, die / der einen Server am Laufen hat einmal an den Punkt, dass es ihr / ihm die VM (oder Teile davon) irreversibel “zerreißt” – wodurch auch immer.
Wer sich im Vorfeld der Sicherung seiner Daten gewidmet hat, ist jetzt klar im Vorteil und hat signifikant niedrigere Adrenalinpegel zu erwarten – besonders, wenn die letzte Sicherung keine 24 Stunden her ist. Unsere OpenStack-Plattform bietet für die Sicherung Ihrer virtuellen Maschine(n) Funktionalität zum automatischen oder auch manuellen Erstellen von Schattenkopien (im Folgenden Snapshots genannt) an.

 > Automatischen Snapshot einrichten

Man wähle den Reiter Snapshots und setze ein Häkchen bei der automatisch zu sichernden VM und die Einstellung wird übernommen.

Et voilà! Ab sofort kümmert sich die OpenStack-App jede Nacht nach 00:00 Uhr darum, dass ein Snapshot dieser virtuellen Maschine erstellt wird. Wie im Bild erwähnt macht sie sieben Stück, beim achten Mal Snapshot-Erstellen löscht sie den ältesten, also den ersten, usw.
Ergo ist “7” ist der Rotations-Standardwert. Wer diesen gerne verändern möchte, d. h. weniger als eine Woche täglicher Snapshots vorhalten will, beispielsweise nur deren drei, kann das wie folgt tun: Zurück zum Reiter “LiveView” > Compute > Instanzen > Drop-down-Menü (ganz rechts neben der Instanz, die modifiziert werden soll) > “Aktualisiere Metadaten”.
Hier sieht man nun, dass unter “Existing Metadata” “nws_backup” existiert und auf “true” gesetzt ist.

Man schreibe unter “Available Metadata” neben das Feld “Custom” “rotation” hinein, füge es mit dem Pluszeichen der “Existing Metadata” hinzu, trage dort den Wert “3” ein und klicke auf “Speichern”.
Fertig.

¡¡¡ Im Fall von Datenbanken auf der zu sichernden VM !!!
Da Snapshots im laufenden Betrieb genommen werden, ist die Konsistenz der Datenbanken darin nicht garantiert. Ich empfehle die Einrichtung eines Cronjobs, der einen Dump der laufenden DBs oder anderer nicht-persistenter Daten anlegt. Gut wäre, wenn dieser vor 24:00 Uhr fertig ist und somit nahtlos mitgebackupt werden kann.

 > Manuellen Snapshot erstellen

Wer hingegen nur einen bestimmten Zustand – beispielsweise nach Durchführung aller Installationshandgriffe seiner Software-Landschaft – gesichert haben möchte, kann das manuell tun: Compute > Instanzen > Schattenkopie erstellen (neben der zu sichernden VM). Es ist dann noch ein aussagekräftiger Schattenkopiename zuzuteilen und Schattenkopie erstellen zu klicken.

Eine grüne Erfolgsmeldung wird hierauf oben rechts aufpoppen.
Hier sollte – wie oben beschrieben – ebenfalls auf Datenbanken geachtet werden.

 > Snapshot einspielen

Sollte es dann eben zur Havarie oder einem sonstigen Fall notwendiger Zurücksetzung kommen, läuft das Einspielen der Sicherung so ab, als würde man eine neue VM starten.
Compute > Instanzen > Instanz starten.

Details > Instanzname setzen

Quelle > Bootquelle auswählen:
Hier gibt es zwei Möglichkeiten, wo sich Ihr Snapshot befindet:

  • entweder > “Datenträger Snapshot” (i. F. v. VMs “mit Datenträger” bzw. “mit Volume”: Systemdatenträger in unserem Ceph-Storage, insgesamt dreifache Replikation an zwei Standorten)
  • oder > “Instanz Snapshot” (i. F. v. VMs “ohne Datenträger” bzw. “ohne Volume”: Systemdatenträger lediglich auf dem Hypervisor)

Variante, Netzwerke, Sicherheitsgruppen und Schlüsselpaar sind wie gehabt zu setzen.

Als Ergebnis wird man jetzt zwei ähnliche VMs haben:

Um den neuen Sollzustand zu verkomplettieren, bleibt, der zu verwerfenden Instanz die Floating-IP abzutrennen (Drop-down-Pfeil ganz rechts neben der Instanz) und diese der neuen zuzuweisen. Wenn sicher ist, dass die alte nicht mehr benötigt wird, kann diese dann auch gelöscht werden, um nicht weiterhin nutzlos Kosten zu verursachen.

Dieses Vorgehen eignet sich nicht nur zur Desaster-Recovery. Auch das Aufsetzen einer baugleichen VM oder das Testen größerer Patches abseits der produktiven Areale kann so bewerkstelligt werden.

Martin Scholz
Martin Scholz
Systems Engineer

Martin sattelte unlängst vom sozialen Bereich auf die IT um und ist im Managed-Services-Support tätig. Praktischerweise nutzt ihm hier, dass er sich bereits vor geraumer Zeit Linux als User zugewandt hat. Privat ist er bekennende Couch-Potatoe, es sei denn er fühlt sich einmal wieder gedrängt, einen Marathon-Marsch zu unternehmen. Kein feliner oder kanider Passant ist vor seiner Kontaktaufnahme sicher.

NETWAYS stellt sich vor – Anke Speringer

This entry is part 4 of 14 in the series NETWAYS stellt sich vor

Anke SperingerName: Anke Speringer
Alter: 35
Position bei NETWAYS: Senior Online Marketing Manager

Ausbildung: Magisterstudiengang Germanistik & Anglistik
Bei NETWAYS seit: November 2019

 

 

 

Was genau gehört zu Deinem Aufgabenbereich bei NETWAYS?
Als Senior Online Marketing Manager gehört die digitale Vermarktung der Produkte und Dienstleistungen des Unternehmens zu meinen Hauptaufgaben. Dazu zählt sowohl die Erstellung einer Online-Vermarktungsstrategie als auch die Durchführung der zugehörigen Einzelmaßnahmen auf den diversen Kanälen und Plattformen wie die Webseiten, Social Media, Google und Newsletter. Das Controlling der Maßnahmen und deren stetige Optimierung gehört genauso dazu, wie sich kurzfristig auf neue Aufgaben einzustellen.

Was macht Dir an Deiner Arbeit am meisten Spaß?
Das Schöne am Online-Marketing ist, dass man kurzfristig Erfolge sehen kann. Wie bewegt sich der User beispielsweise auf einer Webseite? Warum springt ein Großteil der User ab einer bestimmten Seite ab? Kann man die User Experience verbessern, möglicherweise durch besseren Content oder technische Anpassungen wie der Optimierung der Seitenladezeit, um die Absprungrate zu korrigieren? Es ist eine Mischung aus Erfahrung, Psychoanalyse und Testen, was eine Marketingmaßnahme zum Erfolg führt – oder auch nicht. Im letzten Fall ist es dann ein A/B-Test. 😉

Welche größeren, besonders interessanten Projekte stehen künftig an?
Ein großes Projekt wird definitiv die Neuausrichtung der Newsletter sein. Trackt man das Klick-Verhalten der Newsletterempfänger, lässt dies Schlüsse über die individuellen Interessen des Users zu. Zeigt ein User beispielweise hauptsächlich an Icinga-Artikeln Interesse, könnte man diesen in einer eigenen Zielgruppe segmentieren und an diese Unter-Zielgruppe gezielt einen Newsletter mit Icinga-Trainings zusenden. So stellen wir 100% Relevanz und Mehrwert für den Kunden sicher.

Was machst Du, wenn Du mal nicht bei NETWAYS bist?
Als Kaffeejunkie versuche ich mich als Hobby-Barista an diversen Kaffeesorten und Latte Art. (Ein Wölkchen kann ich schon!) Weil man von Kaffee alleine nicht satt wird, ist Kochen für mich eine Art Meditation, bei der ich alles um mich herum vergessen kann. Leider ist das der Figur nur selten zuträglich. Zudem beschäftige ich mich mit dem Thema Persönlichkeitsentwicklung, um mich und natürlich auch meine Mitmenschen persönlich wie beruflich weiterzubringen. Es lebt sich so viel gelassener, wenn man manchmal nur den Fokus etwas verändert und für die kleinen Dinge im Leben dankbar ist, anstatt sich in (eigentlich) unwichtige Probleme hineinzusteigern. Wenn wir uns heute nur 1 Grad ändern und diesen neuen Kurs beibehalten, wer kann sich vorstellen, wo wir vielleicht in ein paar Jahren ankommen werden?

Wie geht es in Zukunft bei Dir weiter?
Nachdem ich mir einen Überblick über alle Kanäle, Kampagnen und Maßnahmen gemacht habe, möchte ich natürlich auch Ergebnisse sehen. Es gilt Strategien zu testen und im Anschluss zu implementieren. Mein erstes Etappenziel ist es, ein dauerhaftes „digitales Grundrauschen“ zu erzeugen, um die Produkte und Dienstleistungen einer Zielgruppe bekannt zu machen, die NETWAYS bisher vielleicht noch nicht auf dem Schirm hatten. Als Optimist schließe ich erste Conversions dabei nicht aus. 🙂 Im Großen und Ganzen bin ich mir aber sicher, dass mir die Arbeit so schnell nicht ausgehen wird. Die Kollegen aus den verschiedenen Fachabteilungen sind alle sehr engagiert und sprudeln nur so vor Verbesserungen und Releases, so dass man mich gewiss in nächster Zeit gut beschäftigen wird, wenn es Zeit ist, die Ideen digital an den Kunden (m/w/d) zu bringen.

Anke Speringer
Anke Speringer
Senior Online Marketing Managerin

Anke ist im November 2019 als Senior Online Marketing Managerin zu NETWAYS gekommen und ist bekennende Apfel-Liebhaberin. Frei nach dem Motto „In God we trust, all others must bring data“ analysiert sie Zahlen, Daten und Fakten in diversen Online-Tools und bringt so Hardware und Dienstleistungen an Personen, die vorher nicht einmal wussten, dass sie das unbedingt brauchen. Privat versucht sie sich als Barista an diversen Kaffeesorten und Latte Art. Kochen, Essen und den Moment genießen...

OSMC Hackathon – Share your impressions!

After two informative and exciting days at OSMC, the cherry on the sundae for me was joining our fifth OSMC hackathon for the first time. Hearing and learning about the discoveries, lessons learned and experiences made by other people in different environments, maybe using different tools, and being shown cool tricks and setups, I personally always get a little twitchy in my fingers wanting to jump at my keyboard and download, clone, install, code and play around with all the amazing new stuff I’ve learned attending OSMC 2019.
And the hackathon is the perfect setting to do this – people having seen the same talks, being excited about the same new features that have been at the forefront of discussion during the last few days.

On Wednesday the attendees made a short trip to a restaurant to have dinner, where people got to know each other casually and dream up the first plans and ideas for the main event tomorrow. After a well deserved night of sleep, the morning started with high spirits and a bit of coffee.

Round tables were placed in Saal Elizabeth, the biggest of the three OSMC conference rooms, everybody got together, and after Bernd welcomed us (and told us when lunch would be served!) everybody got a chance to introduce themselves, what one was looking for on this day, where areas of expertise lie, and if there are any specific problems to be solved.

 

Collaborative hacking equals collaborative fun

The topics were as diverse as the plethora of tools discussed at OSMC – people were working with GitHub Actions, Golang, Kubernetes, translating bash scripts in python, setting up clusters with Grafana, LOKI, Prometheus, automating the pain away with Ansible, having private lessons in Terraform, making logging more effective with Elasticsearch and Logstash, Icinga modules like Icingabeat, looking at the awesome stuff you can do with Icinga Director, and I’ve even seen people working on issues and pull requests – as we know, the community is always active. #monitoringlove <3 

Personally, I was working with Tobias on a SELinux check plugin for Icinga, but mostly, I was looking around, taking in the experience and trying to learn a bit from all the interesting discussions that developed. I can really recommend it! It can make your OSMC experience more complete and rounded, working, coding and developing alongside the experts. Maybe this year you were only able to check out our cool videos from OSMC, and you really wanted to ask one of our amazing speakers a certain question? Well, follow our Twitter at @NetwaysEvents, keep an eye out for the next registration, sign up for two days of open source monitoring goodness plus the hackathon and meet up with your engineering heroes – I’ll be there and I’m looking forward to you!
Henrik Triem
Henrik Triem
Junior Developer

Henrik is Anwendungsentwickler in Ausbildung, verhindeter Rockstar, kaffeegetrieben und Open Source-begeistert. Zuhause lässt er es auch mal ruhiger mit Tee angehen, entspannt an Klavier oder Gitarre, erkundet neue Musik oder treibt sich mit seinen Freunden in Deutschland herum.
AKCP sensorProbeX+: Individuelle Monitoring-Lösungen für IoT

AKCP sensorProbeX+: Individuelle Monitoring-Lösungen für IoT

Um den letzten Blogpost vom NETWAYS Shop aufzugreifen, möchte ich noch ein weiteres Modbus/TCP-fähiges Gerät vorstellen. Im Shop bieten wir ein weiteres Produkt von AKCP an, das diese Funktionen sehr gut umsetzen kann.

Das SPX+ Basismodell!

Es gehört zur Sensorprobe+ Serie von AKCP, dient zur High End Raumüberwachung, hat 4 Ports für Sensoren/ Kombisensoren, ein Webinterface und ist zusätzlich voll SNMP-fähig. Im Bild ist die SPX8-X20 zu sehen:

Features

  • Man kann Alarmierungen per E-Mail oder optional per SMS versenden, hat einen Expansion-Port (optional freischaltbar für Modbus), und einen Netzwerk-Port.
  • Bis zu 150 Sensoren, inklusive Expansion Units und virtuelle Sensoren (max. 50 wenn die VPN-Funktion freigeschaltet ist).
  • Sowohl SensorPorts, als auch interne 3G/4G-Modems sind verfügbar, 10 oder 20er Blöcke mit potentialfreien I/Os.
  • Diese Geräte sind sehr leistungsfähig und mit neuester Technik ausgestattet – und dabei durchaus kosteneffizient.
  • Die SPX+ ist voll modular aufgebaut, das heißt, nach Ihren Wünschen konfigurierbar.
  • Je nachdem wie viele Module gewählt werden, kann das Gerät dann auf 19″ 1HE oder aber auch stehend im Schrank montiert werden.

 

Die SPX+ ist erweiterbar und durch den modularen Aufbau können Sie sich für weitere Module und auch Softwareerweiterungen entscheiden.
Diese wären:

  • 5er Pack virtuelle Sensoren
  • SNMPv3
  • VPN
  • Modbus

Ich gehe nochmal auf das Modbus-Feature ein:

SPX+ unterstützt Modbus mit dem RJ45-Erweiterungsport und durch das Hinzufügen eines optionalen Moduls kann das Gerät mit 2x RS485-Anschlüssen ausgestattet werden.
Mit diesem Modul kann die SPX+-Einheit als eine Art Modbus-Master- und -Slave-Gerät gleichzeitig agieren, aber als wäre das nicht genug unterstützt das Gerät beide Modbus-Protokolle, sowohl RTU als auch TCP.

Wichtigste Punkte des SPX+ nochmal zusammengefasst:

  • maximal 50 Sensoren bei freigeschalteter VPN-Funktion
  • voll SNMP fähig
  • nach eigenem Wunsch konfigurierbar
  • vielfältige Modul- und Softwareerweiterung

Ansonsten helfen wir bei Fragen rund um die Hardware von AKCP gerne weiter – wir sind erreichbar per Mail oder telefonisch unter der 0911 92885-44. Wer uns gerne bei der Arbeit ein bisschen über die Schulter schauen oder den Shop und die angebotenen Produkte verfolgen möchte, kann uns seit kurzem auch auf Twitter folgen – über @NetwaysShop twittert das NETWAYS Shop Team!

Artur Shvera
Artur Shvera
Junior Consultant

Artur hat im September 2019 seine Ausbildung zum Fachinformatiker gestartet. Sitzt er mal nicht an seinem Hobby - hinter dem PC, ist er in seiner Freizeit oft unterwegs, meistens in anderen Städten. Doch wenn man Ihn mal trifft, ist er immer für ein nettes Gespräch zu haben. Seine restliche Kreativität steckt der gebürtige Russe in seine musikalische Seite.