[{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/tags/automatisierung/","section":"Tags","summary":"","title":"Automatisierung","type":"tags"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/posts/","section":"Blog","summary":"","title":"Blog","type":"posts"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"6 April 2026","externalUrl":null,"permalink":"/en/categories/electrical-engineering/","section":"Categories","summary":"","title":"Electrical Engineering","type":"categories"},{"content":"","date":"6 April 2026","externalUrl":null,"permalink":"/en/tags/electrical-engineering/","section":"Tags","summary":"","title":"Electrical Engineering","type":"tags"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/categories/elektrotechnik/","section":"Categories","summary":"","title":"Elektrotechnik","type":"categories"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/tags/elektrotechnik/","section":"Tags","summary":"","title":"Elektrotechnik","type":"tags"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/series/energie/","section":"Series","summary":"","title":"Energie","type":"series"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/tags/energiegewinnung/","section":"Tags","summary":"","title":"Energiegewinnung","type":"tags"},{"content":"","date":"6 April 2026","externalUrl":null,"permalink":"/en/series/energy/","section":"Series","summary":"","title":"Energy","type":"series"},{"content":"","date":"6 April 2026","externalUrl":null,"permalink":"/en/tags/energy-generation/","section":"Tags","summary":"","title":"Energy Generation","type":"tags"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/authors/gerhard-sulzberger/","section":"Authors","summary":"","title":"Gerhard Sulzberger","type":"authors"},{"content":"","date":"6 April 2026","externalUrl":null,"permalink":"/en/tags/heat-pump/","section":"Tags","summary":"","title":"Heat Pump","type":"tags"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/tags/homeassistant/","section":"Tags","summary":"","title":"Homeassistant","type":"tags"},{"content":"","date":"6 April 2026","externalUrl":null,"permalink":"/en/tags/hot-water/","section":"Tags","summary":"","title":"Hot Water","type":"tags"},{"content":"Disclaimer:\nIch arbeitederzeit bei Fronius.\nEs sind keine Komponenten von der Firma Fronius zur Verfügung gestellt worden. Alle Komponenten wurden selbst bezahlt. Ich bekommen keinerlei Vergütung dafür über diesen Umbau zu schreiben. Bitte dies auch nicht als Werbung zu verstehen, sondern als reinen Erfahrungsbericht. Dies ist keine Anleitung oder Beratung. Die technischen Vorschriften können sich ändern je nach Voraussetzungen.\nZiele # Umbau der Anlage von Mikroinverter auf Stringinverter. 3Phasen Drehfeld im Notstrombetrieb. Vorbereitung auf Batteriespeicher und Notstromumschaltung. Ausgangslage # Jahresgesamtverbrauch ~2500 kWh Netzzugang 4 KW Einspeisebegrenzung 4 kW Warmwasseraufbereitung # Boiler zur Warmwasseraufbereitung mit Luftwärmepumpe: warmwasser-waermepumpe-wpa-450\nNominale Stromaufnahme ~1 KW (Wärmepumpe)\nWärme # Im Winter wird täglich auf einem Tischherd mit Durchheize in einen Kachelofen gekocht. Im Schnitt benötigen wir ca 2m³ Weichholz und 2m³ Hartholz Scheite. Das Holz wird im eigenen Wald aufgearbeitet, getrocknet und zu Scheitholz verarbeitet. Das Haus ist so gebaut das der größte Teil durch den Kachelofen beheizt wird. Dadurch sinkt der Bedarf an elektrischer Enrgie drastisch.\nFalls mal kein Holz im Ofen sein sollte (was so gut wie nie vorkommt), können wir noch Infrarotpanele in den Wohnräumen und elektrische Fußbodenheizung im Bad verwenden. Wir haben keine wassergeführte Heizung im Haus, was sich bisher sehr bewährt hat.\nPlanung PV # 9 KWp Generatorleistung 12 Paneele in SüdOstausrichtung, 33 Grad Dachneigung, auf PV1 im Wechselrichter. 8 Paneele in NordWestausrichtung, 33 Grad Dachneigung, auf PV2 im Wechselrichter. 6 KW Wechselrichter Fronius Symo GEN24 6.0 plus mit LAN angebunden Stringwechselrichter 3Phasig mit Drehfeld als vorbereitung für Backuplösung und Batteriepacket 4 KW Dynamische Einspeisebegrenzung Smartmeter IP mit Stromwandler Vom Hausnetz unabhängige Notstromlösung Fronius PV Point Vorbereitung für 12 kW elektrischen Speicher Plus Serie ist vorbereitet für Batteriespeicher Einbindung in Homeassistant Community Fronius integration und Solar API direkt vom Wechselrichter AMIS-Leser in das WLAN hängen und die Werte ebenfalls via MQTT versenden Zeitsteuerung der Warmwasseraufbereitung Plan (old school) # Durchführung # Einmeldung NetzOOE # Da es sich um eine Erweiterung der Anlage handelt, habe ich diese Erweiterung bei meinem Netzbetreiber eingemeldet. Wie immer sehr unkompliziert und auch wenn es im Formular mal Probleme gibt, wird einem durch zuständige Personen unkompliziert und sehr freundlich geholfen. Da das Umspannwerk oder ein Trafo bereits an seine Grenzen kommt, haben wir die Auflage bekommen auf maximal 4 kW Einspeiseleistung zu begrenzen.\nKomponenten # Fronius Symo GEN24 6.0 plus 1x Fronius Smartmeter IP 1x Mitterbauer AMIS-Leser 1x Trina Solar Vertex S+ TSM-450NEG9R.28 20x Aufbau # Unterkonstruktion # Der Aufbau der Unterkonstruktion war eine der größeren Überraschungen und Herausforderungen.\nAuch überraschend war, das die Unterkonstruktion auf dem Ziegeldach, höhere Materialkosten verursacht als der Solargenerator selbst. Die Arbeit in der Höhe bin ich gewohnt und auch den Umgang mit Seilen und Gurten, die Sicherungshaken auf dem Dach wurden vom Dachdecker beim Neubau eingebaut. Mein Tip für einen Neubau ist, das man sich die Unterkonstruktion bei einer DIY Anlage gleich mit aufbauen lässt. Im Nachhinein ist das schon etwas mehr Aufwand und auch die Schrauben und Blechdachziegel sind Kostenseitig nicht zu unterschätzen.\nDie Unterkonstruktion ist in den Potentialausgleich eingebunden. Ist ein Blitzschutz vorhanden, sollte mit einem Blitzschutz experten abgeklärt werden die die PV Anlage eingebunden werden sollte.\nLeitungsverlegung # Die Stringleitungen habe ich in Alurohre, die in den Potentialausgleich eingebunden sind, verlegt. Auch im Innenraum. Im Fall von einem Brand schmelzen Alu Rohre nicht so schnell, und wenn der Solargenerator bei Löscharbeiten nicht abgeschalten werden kann es für Einsatzkräfte gefährlich werden wenn Wasser auf mehrere 100 Volt DC Spannung trifft. Der Fronius Wechselrichter verfügt über einen DC Schalter mit dem der Solargenerator getrennt werden kann. Trotzdem sollte eine Trennbox bei Dacheintritt verbaut werden, vorallem wenn der Wechselrichter nicht von aussen zugänglich ist. Das gibt den Einsatzkräften die Möglichkeitchkeit den Solargenerator auch unter Last zu trennen. Bei der Verlegung der Solarpaneleauf ist darauf zu achten das keine Induktionsschleifen entstehen. Plus und Minus Leitung sollten möglichst parallel geführt werden, da sonst bei einem Blitzschlag in der Nähe hohe Spannungen induziert werden und so ein indirekter Blitzschlag zu schäden führen kann. Auch wenn die meisten Trennboxen und auch der Fronius Wechselrichter mit Überspannungssschutzmodulen ausgestattet werden können, sollte man Induktionsschleifen vermeiden. MC4 Stecker ist nicht gleich MC4 Stecker. Deswegen immer Steckerpaare des gleichen Herstellers verwenden. Wenn auf dem Solarpanel ein anderer Stecker verbaut ist, dann ist Vorsicht geboten. Ich verwende gerne Weidmüller PV Stick mit SNAP IN Verbindungen. Bei diesem Stecker Typ wird kein Crimp Werkzeug benötigt, aber gut hören sollte man. Wenn der Steckertyp auf den PV modulen ein anderer ist, muss bei den Übergängen auf String Leitungen auch der Stecker auf der Modulseite montiert werden. Steckerpaare sollten nicht gemischt werden.\nWechselrichter # Der Wechselrichter selbst ist mii 6² Potentialausgleich und in meinem Fall 4² Zuleitung AC Seitig angeschlossen. Der Potentialausgleich wird für das Überspannungsschutzmodul benötigt das in den GEN24 Modellen zusätzlich verbaut werden kann. Die Wago Klemmen sind sehr komfortabel bei der Montage in generell hat der GEN24 einen guten Eindruck hinterlassen. Die Anschlüsse des Piloten (Steuermodul) sind hingegen schon eine Herausforderung. Schon mal versucht den Schirm eines CAT 5e SFTP Kabels in die Stecker zu bekommen um die Schirmung zu gewährleisten bei der Modbus Leitung? Da gibt es Verbesserungpotential. Die Ersteinrichtung ist intuitiv und einfach gehalten für standard anlagen.\nSmartmeter IP # Um den Preis hätte ich mit eine bessere Verarbeitung der mechanik bezüglich der Hutschinenmontage erwartet. Es ist auch erwähnenswert das die Stromumwandler einzeln verpackt werden und zusätzlich erworben werden müssen. Hier wäre ein Smartmeter IP mit Direktmessung bis 63A wünschenswert.\nAutomation # Homeassistant in Docker auf bestehendem Linux-Nextcloud-Server Docker MQTT-Server Daten auf NFS-Storages Zählerdaten auslesen # Der Fronius Smartmeter IP bietet die Möglichkeit Energiedaten auszulesen und via Modbus, Modbus TCP oder MQTT können die Daten vom Wechselrichter verarbeitet werden. Da der bestehende AMIS-Leser sich bestens in den Homeassistant integrieren lässt, habe ich so die Möglichkeit die Daten zu vergleichen. Die Steuerung der Verbraucher wird mittels Homeassistant realisiert, da dieser umfangreiche Integrationen zur Verfügung stellt.\nAutomation und Analyse # Solarweb # MPPT Tracker PV1 + PV2 # Energiebilanz # Verbraucher an Erzeugung anpassen # Die Infrarotpanele haben zwischen 500W und 1600W Je nach Prioritot im Raum können diese unterschiedlich geschalten werden. So kann in der Übergangszeit die benötigte Leistung gut reguliert werden, auch wenn keine Batterie vorhanden ist. Dynamischen Einspeisebegrenzung # Wenn zu viel Strom vorhanden ist, kann der Wechselrichter die Einspeisung begrenzen. Bei Konstantem überschuß wird die wärmepumpe des Boilers aktiviert, der überschu0 ins Netz eingespeißt. Homeassistant # Mit Homeassistant hat man viele Möglichkeiten Dashboards selbst zu erstellen und damit zu Spielen. Ich verwende auch gerne die App auf dem Mobiltelefon um Geräte zu steuern und szenarien zu automatisieren. Planung eines weiteren Ausbaus # Batteriespeicher Ansteuerung von Verbrauchern optimieren. Waschmaschine, Trockner, Dörrgerät und Geschirrspüler wäre noch Geräte die optimiert werden können. Allerdings denke ich das diese THematik mit dem Batteriespeicher in den Hintergrund geraten wird. Da wir in den Wintermonaten mittels Kachelofen und Herd heizen, ist auch in den Wintermonaten der meiste elektrische Energieverbrauch die Warmwasseraufbereitung. ","date":"6. April 2026","externalUrl":null,"permalink":"/posts/pv_2026/","section":"Blog","summary":"Disclaimer:\nIch arbeitederzeit bei Fronius.\nEs sind keine Komponenten von der Firma Fronius zur Verfügung gestellt worden. Alle Komponenten wurden selbst bezahlt. Ich bekommen keinerlei Vergütung dafür über diesen Umbau zu schreiben. Bitte dies auch nicht als Werbung zu verstehen, sondern als reinen Erfahrungsbericht. Dies ist keine Anleitung oder Beratung. Die technischen Vorschriften können sich ändern je nach Voraussetzungen.\n","title":"PV Erweiterung 1","type":"posts"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":" Über mich # Ich bin spezialisiert auf IT-Infrastruktur, Automatisierung und Open-Source-Technologien. Mit Hintergrund in Elektrotechnik, Klimatechnik, Baumpflege, Landwirtschaft und Schießtraining verbinde ich technische Expertise mit ökologischem Bewusstsein.\nPlatform Engineering\nAufbau und Betrieb von skalierbaren Infrastrukturen\nSite Reliability Engineering\nZuverlässigkeit und Automatisierung anhand von SRE Methoden\nOpen Source\nSchwerpunkt auf FOSS und Open Source Lösungen\nElektrotechnik \u0026amp; Klimatechnik\nIngenieur der Elektrotechnik mit Zusatzausbildung Klimaanlagen\nBaumpflege \u0026amp; Landwirtschaft\nFachagrarwirt Baumpflege \u0026amp; Baumsanierung, nachhaltige Landwirtschaft\nSchießausbildung\nInstruktor dynamisches Verteidigungsschießen\nMehr zu meinem Profil →\n","date":"6. April 2026","externalUrl":null,"permalink":"/","section":"SETE - Platform Engineering \u0026 Nachhaltigkeit","summary":"Über mich # Ich bin spezialisiert auf IT-Infrastruktur, Automatisierung und Open-Source-Technologien. Mit Hintergrund in Elektrotechnik, Klimatechnik, Baumpflege, Landwirtschaft und Schießtraining verbinde ich technische Expertise mit ökologischem Bewusstsein.\n","title":"SETE - Platform Engineering \u0026 Nachhaltigkeit","type":"page"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/tags/w%C3%A4rmepumpe/","section":"Tags","summary":"","title":"Wärmepumpe","type":"tags"},{"content":"","date":"6. April 2026","externalUrl":null,"permalink":"/tags/warmwasser/","section":"Tags","summary":"","title":"Warmwasser","type":"tags"},{"content":"","date":"22. Dezember 2025","externalUrl":null,"permalink":"/categories/automation/","section":"Categories","summary":"","title":"Automation","type":"categories"},{"content":"","date":"22. Dezember 2025","externalUrl":null,"permalink":"/tags/automation/","section":"Tags","summary":"","title":"Automation","type":"tags"},{"content":"","date":"22. Dezember 2025","externalUrl":null,"permalink":"/tags/devops/","section":"Tags","summary":"","title":"DevOps","type":"tags"},{"content":"","date":"22. Dezember 2025","externalUrl":null,"permalink":"/tags/linux/","section":"Tags","summary":"","title":"Linux","type":"tags"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2025-12-22.\nEin Artikel über Rubenshof - Linux Mint Unattended Installer\nJedes Jahr richten wir einige Geräte für unsere Schüler in der Schule ein. Dieses Jahr hatten wir die Situation verzögerter Lieferungen, weil eine Spende von Notebooks länger als erwartet gedauert hat. Also mussten wir schneller bei der Einrichtung der Geräte werden. Ich habe diese Herausforderung angenommen und ein unbeaufsichtigtes Workstation-Setup für unsere Schule erstellt.\nAm Wochenende habe ich einige Recherchen zu bereits existierenden Projekten durchgeführt und begonnen zu lernen, wie sie funktionieren.\nFAI-Projekt AntonioCarlini linux-mint-unattended-installer Das FAI-Projekt ist ein sehr interessantes Projekt, und durch die Analyse, wie es funktioniert, habe ich auch etwas über Linux-ISO-Images und wie sie erstellt werden, gelernt. Für unser Schulprojekt habe ich nach einer anderen Lösung gesucht. Also habe ich beschlossen, auf der Basis des Projekts von Antonio Carlini weiterzuentwickeln. Ich kannte mich ein bisschen mit unbeaufsichtigten Installation aus, weil ich bereits Erfahrung mit Kickstart unter RHEL und Preseeding von Ubuntu-Installationen in automatisierten PXE-Boot-Umgebungen hatte.\nAlso war das Ziel, einen USB-Stick zu nehmen und von diesem zu booten. Der Installer sollte alles andere erledigen. Es hat ein Wochenende gedauert, um etwas zu erstellen, das wir bereits nutzen können. Das Ergebnis war der Rubenshof - Linux Mint Unattended Installer.\nEs gibt noch Arbeit in Progress, und es können noch viele Verbesserungen vorgenommen werden. Aber es erleichtert uns bereits jetzt das Leben, wenn die Druckertreiber vorbereitet sind, Firefox-Richtlinien ausgerollt werden und die Tools für den Univention Domain Join eingerichtet sind. Nach 10 Minuten befindet sich die Schüler-Workstation in einem Zustand, in dem sich die Schüler mit ihren von UCS verwalteten Benutzern anmelden und auf die interne Nextcloud-Weboberfläche zugreifen können. Auch mein letzter Feind (der Drucker) ist zufrieden und erledigt seine Arbeit.\nFroh, Open Source zu nutzen, weil Freie und Open-Source-Software dies möglich macht. Vielen Dank an die Community und Unternehmen, die an Open Source glauben, und ich hoffe, ich kann mit diesem Projekt ein wenig zurückgeben.\nUnivention Nextcloud Linux Mint\n","date":"22. Dezember 2025","externalUrl":null,"permalink":"/posts/linux-mint-unattended-installation/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2025-12-22.\nEin Artikel über Rubenshof - Linux Mint Unattended Installer\nJedes Jahr richten wir einige Geräte für unsere Schüler in der Schule ein. Dieses Jahr hatten wir die Situation verzögerter Lieferungen, weil eine Spende von Notebooks länger als erwartet gedauert hat. Also mussten wir schneller bei der Einrichtung der Geräte werden. Ich habe diese Herausforderung angenommen und ein unbeaufsichtigtes Workstation-Setup für unsere Schule erstellt.\n","title":"Linux Mint unbeaufsichtigte Installation","type":"posts"},{"content":"","date":"22. Dezember 2025","externalUrl":null,"permalink":"/tags/packer/","section":"Tags","summary":"","title":"Packer","type":"tags"},{"content":"Ursprünglich veröffentlicht auf LinkedIn am 2025-11-23.\nEs ist üblich, dass IT-Administratoren, die klassische Enterprise-Virtual-Machine(VM)-Infrastrukturen verwalten, leistungsstarke, bestehende Tools für Automatisierung und Skalierung übersehen. Während die Vorteile von Cloud-nativen Bereitstellungsmustern — wie verfügbare, selbstkonfigurierende Infrastruktur — gut verstanden werden, erkennen viele nicht, dass ähnliche, Workflow-basierte Effizienz auch für ihre On-Premises-VMs erreichbar ist. Die notwendige Technologie ist seit Jahren verfügbar.\nDie effektivste Lösung zur Modernisierung der VM-Bereitstellung besteht in der Übernahme eines zweistufigen Ansatzes:\nBildvorbereitung: Erstellen standardisierter, minimaler und wiederholbarer VM-Basis-Images mit Packer oder anderen Tools. Laufzeitkonfiguration mit Cloud-Init: Bereitstellung und Anpassung dieser Images zur Laufzeit. Diese Kombination verlagert den Fokus vom manuellen Aufbau und Konfigurieren jeder VM zur Wartung einer zuverlässigen, versionierten Bereitstellungspipeline, was die Infrastruktur deutlich wartbarer und skalierbarer macht.\nEin einfaches Laborumfeld # Um dies zu testen, verwende ich gerne eine sehr einfache und grundlegende Einrichtung. Ich konzentriere mich in diesem Teil auf cloud-init; die gesamte Bildvorbereitung mit Packer ist ein anderes Thema.\nMeine Laborumgebung ist ein tuxedo Infinitybook mit KVM, qemu, libvirt und cloud-init. Wir verwenden ein AlmaLinux Generic Cloud Image als Basis-Image. Dann erstellen wir die benötigten Dateien von Grund auf, um ein Verständnis zu entwickeln.\nBenötigte Tools auf der Tuxedo-OS-Workstation für die Entwicklungsumgebung:\nsudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager cloud-utils Das Paket virt-manager ist optional, es ist eine grafische Oberfläche zur Verwaltung der virtuellen Maschinen.\nMit einem einfachen Bash-Skript kann die Labor-VM gestartet werden:\n#!/bin/bash # Wichtige Shell-Optionen für Robustheit einstellen # -e: Beenden, wenn ein Befehl mit einem Nicht-Null-Status endet. # Dies hilft, Fehler früh in der Skriptausführung zu erkennen. # -u: Nicht gesetzte Variablen als Fehler behandeln. # Dies hilft, unerwartetes Verhalten durch Tippfehler oder fehlende Variablenzuweisungen zu verhindern. # -f: Pfadnamenserweiterung (Globbing) deaktivieren. # Dies kann nützlich sein, wenn Sie Sternchen, Fragezeichen usw. wörtlich behandeln möchten. # -C: Überschreiben vorhandener Dateien durch Umleitung (mit \u0026gt;) verhindern. # Zum Überschreiben müssen Sie \u0026gt;| verwenden. Dies hilft, versehentlichen Datenverlust zu vermeiden. # -o pipefail: Wenn ein Befehl in einer Pipeline fehlschlägt, ist der Exit-Status der gesamten Pipeline der des fehlgeschlagenen Befehls. # Ohne diese Option wäre der Exit-Status der Pipeline der des letzten Befehls in der Pipeline. set -eufCo pipefail SSH_PUB_KEY=$(cat $HOME/.ssh/id_ed25519.pub) # HINWEIS: Laborverzeichnis vorbereiten if [[ -d $HOME/lab/one1 ]]; then cd $HOME/lab/one1 else mkdir -p $HOME/lab/one1 cd $HOME/lab/one1 fi # HINWEIS: AlmaLinux-10-GenericCloud-Image abrufen if [[ -a $HOME/Downloads/AlmaLinux-10-GenericCloud-latest.x86_64.qcow2 ]]; then : # AlmaLinux 10 GenericCloud-Image ist bereits in Downloads, nichts tun else curl -o ~/Downloads/AlmaLinux-10-GenericCloud-latest.x86_64.qcow2 https://repo.almalinux.org/almalinux/10/cloud/x86_64_v2/images/AlmaLinux-10-GenericCloud-latest.x86_64_v2.qcow2 fi # HINWEIS: Image für VM vorbereiten if [[ -a one1.qcow2 ]]; then : # Image bereits erstellt, nichts tun else qemu-img create -f qcow2 -o backing_file=~/Downloads/AlmaLinux-10-GenericCloud-latest.x86_64.qcow2,backing_fmt=qcow2 one1.qcow2 25G fi if [[ -a user-data ]]; then : # user-data existiert; nichts tun else cat \u0026gt;user-data \u0026lt;\u0026lt;EOF #cloud-config hostname: one1 fqdn: one1.qemu.internal manage_etc_hosts: true users: - name: admin ssh-authorized-keys: - $SSH_PUB_KEY sudo: [\u0026#39;ALL=(ALL) NOPASSWD:ALL\u0026#39;] groups: sudo shell: /bin/bash package_update: true packages: - qemu-guest-agent - curl runcmd: - dnf config-manager --set-enabled crb - dnf install -y epel-release - curl -Lo /var/tmp/minione https://github.com/OpenNebula/minione/releases/download/v7.0.1/minione - chmod +x /var/tmp/minione - sudo /var/tmp/minione --yes EOF fi if [[ -a meta-data ]]; then : # meta-data existiert; nichts tun else cat \u0026gt;meta-data \u0026lt;\u0026lt;EOF hostname: one1 fqdn: one1.qemu.internal EOF fi if [[ -a network-config ]]; then : # network-config existiert; nichts tun else cat \u0026gt;network-config \u0026lt;\u0026lt;EOF #network-config network: version: 1 config: - type: physical name: eth0 subnets: - type: static address: 192.168.122.51/24 gateway: 192.168.122.1 dns_nameservers: - 192.168.122.1 - 86.54.11.1 EOF fi # HINWEIS: VM initialisieren sudo virt-install \\ --name one1-lab \\ --ram 2048 \\ --vcpus 2 \\ --disk path=one1.qcow2,format=qcow2 \\ --network network=default \\ --os-variant almalinux10 \\ --graphics spice \\ --import \\ --cloud-init user-data=user-data,meta-data=meta-data,network-config=network-config Wenn virt-install gestartet wird, wird es mit der Domäne \u0026lsquo;one1-lab\u0026rsquo; verbunden. Falls jemand nicht daran gewöhnt ist, die Konsole durch virsh geöffnet zu lassen: Das Escape-Zeichen ist ^] (Strg + ]). Eine andere mögliche Lösung ist die Verwendung einer ISO-Datei und deren Einbindung bei der Initialisierung der VM.\ncloud-localds one1-cloud-init.iso user-data meta-data -N network-config sudo virt-install \\ --name one1-lab \\ --ram 2048 \\ --vcpus 2 \\ --disk path=one1.qcow2,format=qcow2 \\ --network network=default \\ --os-variant almalinux9 \\ --graphics spice \\ --import \\ --cdrom one1-cloud-init.iso OpenNebula miniONE-Installation via cloud-init innerhalb des Labs\nAusführung von Alpine Linux in verschachtelter Virtualisierungsumgebung innerhalb von KVM\nEin Login auf der VM am Host-System, erstellt durch cloud-init; SSH ohne Passwort kann verwendet werden. Dafür wurde der öffentliche SSH-Schlüssel über die user-data hinzugefügt.\nssh-keygen -f ~/.ssh/known_hosts -R \u0026#39;192.168.122.51\u0026#39; ssh 192.168.122.51 -ladmin [admin@one1 ~]$ sudo -u oneadmin onevm list Überprüfung laufender VM per CLI innerhalb der VM\nIch würde solche Installation wie miniONE mit cloud-init nicht empfehlen, aber es zeigt, was cloud-init kann. Es sind keine Tools wie Ansible, Terraform oder andere beteiligt. Nur ein bisschen Bash, miniONE (welches auch in Bash geschrieben ist) und cloud-init. Zum Skalieren würde ich empfehlen, die Images vorzubereiten und Pakete bereits zu installieren. Nur die Konfiguration mit cloud-init zu finalisieren. Die VM ist schneller online, wenn sie bereits vorbereitet ist, und in Setups, in denen VMs zum Skalieren verwendet werden, spart dies auch Bandbreite. Wenn es nur um Compute-Instanz geht, die keine Daten speichern, können nicht-persistente Images auch Speicherplatz sparen.\nWährend die Unternehmensübernahme weitere Punkte anerkennt — wie Sicherheitshärtung und umfassendes Image-Lebenszyklus-Management — ist das Experimentieren mit Cloud-Init der effektivste Weg, um die Prinzipien hinter großen, automatisierten Cloud-Bereitstellungen zu verstehen, die jeder Enterprise-IT-Admin kennen sollte. Orchestrierungstools wie Proxmox Server Solutions oder OpenNebula Systems haben Cloud-Init seit Jahren integriert, und es ist eine solide Lösung.\nDer Übergang von einem grundlegenden Verständnis zu einer vollständigen Unternehmensimplementierung beinhaltet die Anerkennung kritischer Faktoren wie die Durchsetzung von Sicherheitsrichtlinien, robuste Image-Wartung und die Integration in Ihre bestehenden Orchestrierungstools. Dennoch dient das Sammeln praktischer Erfahrungen mit Cloud-Init als grundlegendes Tor zum Verständnis der Mechanismen, die skalierbare, automatisierte Bereitstellungen in der modernen Cloud-Infrastruktur antreiben.\nMachen Sie sich mit den Konzepten vertraut, beginnen Sie mit dem Experimentieren mit User Data und beginnen Sie damit, Ihre eigenen automatisierten Images heute zu erstellen.\nViel Spaß im Home Lab!\n","date":"23. November 2025","externalUrl":null,"permalink":"/posts/cloud-init-what/","section":"Blog","summary":"Ursprünglich veröffentlicht auf LinkedIn am 2025-11-23.\nEs ist üblich, dass IT-Administratoren, die klassische Enterprise-Virtual-Machine(VM)-Infrastrukturen verwalten, leistungsstarke, bestehende Tools für Automatisierung und Skalierung übersehen. Während die Vorteile von Cloud-nativen Bereitstellungsmustern — wie verfügbare, selbstkonfigurierende Infrastruktur — gut verstanden werden, erkennen viele nicht, dass ähnliche, Workflow-basierte Effizienz auch für ihre On-Premises-VMs erreichbar ist. Die notwendige Technologie ist seit Jahren verfügbar.\n","title":"Cloud-Init - Was ist das?","type":"posts"},{"content":"","date":"23. November 2025","externalUrl":null,"permalink":"/categories/devops/","section":"Categories","summary":"","title":"DevOps","type":"categories"},{"content":"","date":"23. November 2025","externalUrl":null,"permalink":"/tags/iac/","section":"Tags","summary":"","title":"IaC","type":"tags"},{"content":"","date":"23. November 2025","externalUrl":null,"permalink":"/tags/terraform/","section":"Tags","summary":"","title":"Terraform","type":"tags"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2025-10-22.\nVulnerability-Scans können trickreich sein, und es gibt verschiedene Strategien. Es beginnt bereits bei den Datensätzen, die von den verschiedenen Betriebssystemen bereitgestellt werden, und wie diese von den Scan-Tools implementiert werden. Nehmen wir zum Beispiel Alpine. Viele Ingenieure denken, dass es sicher ist, weil Tools wie Trivy 0 Vulnerabilities anzeigen.\nAber es gibt security.alpinelinux.org und Informationen über potenzielle CVEs innerhalb von Alpine-Paketen.\nUnd Alpine bietet auch Informationen über CVEs, die bereits über den secdb.alpinelinux.org-Dienst behoben wurden.\nDie Informationen, die ein Vulnerability-Scanner zur Erkennung von Common Vulnerabilities and Exposures (CVEs) während des Scannens von Artefakten wie Container-Images verwendet, sind hochrelevant. Beispielsweise bedeutet ein Trivy-Scan eines auf Alpine basierenden Container-Images, der null Vulnerabilities meldet, oft, dass derzeit keine Sicherheitskorrekturen (secfixes) für die aufgeführten Alpine-Pakete verfügbar sind. Dieser Ansatz ergibt Sinn, insbesondere wenn Paketversionen im Containerfile festgezurrt sind, da der Fokus auf bekannten, behebbaren Problemen liegt. Die Integration dieser Scanning-Strategie früh im CI/CD-Pipeline ist sehr vorteilhaft, da behebbare CVEs während des Build-Prozesses erkannt werden und sofortige Aufmerksamkeit erregen. Dementsprechend unterstützt Trivy nicht die Erkennung von tatsächlich unbehobenen CVEs beim Scannen von Alpine. Ein Detail, das nicht überraschend ist, wenn die Dokumentation richtig gelesen wurde.\nSiehe: https://trivy.dev/v0.67/docs/coverage/os/alpine/\nIm Gegensatz dazu verfolgt Debian eine andere Strategie. Es pflegt eine Datenbank offener, bekannter CVEs für seine Pakete (www.debian.org/security/), und Trivy verwendet diese Informationen für seine Scans. Das Ergebnis ist völlig anders: Mit denselben Tools im selben Workflow wird die Erkennung unbehobener CVEs unterstützt.\nDetails in der Trivy-Dokumentation: https://trivy.dev/v0.67/docs/coverage/os/debian/\nDie entscheidende Implikation dieser gegensätzlichen Strategien ist sofort in der Wartung der Vulnerability-Basislinie erkennbar: der .trivyignore-Datei. Für ein auf Alpine basierendes Image wird die .trivyignore-Datei deutlich weniger Einträge enthalten und nur Ausnahmen für Probleme dokumentieren, für die eine Lösung existiert, die aber verschoben wird. Der Debian-Ansatz erfordert hingegen eine .trivyignore-Datei mit deutlich mehr Einträgen, da er den Benutzer zwingt, bekannte, aber noch nicht behebbare (durch einfache Paketaktualisierungen) CVEs, die vom Scanner gemeldet werden, manuell zu unterdrücken oder zu akzeptieren.\nLetztendlich müssen Teams entscheiden, welche Vulnerability-Reporting-Strategie am besten zu ihrer Risikotoleranz und Pipeline-Metriken passt. Dieser Unterschied ist für effektive DevSecOps- und Security-Praktiken relevant und unterstreicht die Bedeutung, seine Tools und deren Grenzen zu kennen. Vielleicht sollten Sie auch mehrere Tools verwenden, aber bewerten, ob es verschiedene Strategien gibt, um das zu erkennen, was erwartet wird.\n","date":"22. Oktober 2025","externalUrl":null,"permalink":"/posts/0-vulnerabilities-think-twice/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2025-10-22.\nVulnerability-Scans können trickreich sein, und es gibt verschiedene Strategien. Es beginnt bereits bei den Datensätzen, die von den verschiedenen Betriebssystemen bereitgestellt werden, und wie diese von den Scan-Tools implementiert werden. Nehmen wir zum Beispiel Alpine. Viele Ingenieure denken, dass es sicher ist, weil Tools wie Trivy 0 Vulnerabilities anzeigen.\n","title":"0 Vulnerabilities - Denken Sie zweimal darüber nach","type":"posts"},{"content":"","date":"22. Oktober 2025","externalUrl":null,"permalink":"/tags/alpine/","section":"Tags","summary":"","title":"Alpine","type":"tags"},{"content":"","date":"22. Oktober 2025","externalUrl":null,"permalink":"/tags/container/","section":"Tags","summary":"","title":"Container","type":"tags"},{"content":"","date":"22. Oktober 2025","externalUrl":null,"permalink":"/tags/debian/","section":"Tags","summary":"","title":"Debian","type":"tags"},{"content":"","date":"22. Oktober 2025","externalUrl":null,"permalink":"/series/devsecops/","section":"Series","summary":"","title":"DevSecOps","type":"series"},{"content":"","date":"22. Oktober 2025","externalUrl":null,"permalink":"/tags/devsecops/","section":"Tags","summary":"","title":"DevSecOps","type":"tags"},{"content":"","date":"22. Oktober 2025","externalUrl":null,"permalink":"/categories/security/","section":"Categories","summary":"","title":"Security","type":"categories"},{"content":"","date":"22. Oktober 2025","externalUrl":null,"permalink":"/tags/security/","section":"Tags","summary":"","title":"Security","type":"tags"},{"content":"","date":"22. Oktober 2025","externalUrl":null,"permalink":"/tags/trivy/","section":"Tags","summary":"","title":"Trivy","type":"tags"},{"content":"Ursprünglich veröffentlicht auf LinkedIn am 2025-10-18.\nDa ich OpenNebula seit einiger Zeit nicht mehr verwendet habe, aber in der Vergangenheit gute Erfahrungen damit gemacht habe, habe ich beschlossen zu prüfen, was es in diesem Projekt Neues gibt. Daher habe ich eine miniONE-Instanz im Proxmox-Homelab instanziiert.\nBereitstellung von miniONE auf dem virtualisierten Knoten: Anleitung zur Bereitstellung Installation validieren: Validierung Kubernetes auf miniONE ausführen: K8S-Rollout Bereitstellung # miniONE-Installation auf Ubuntu 24.04\nValidierung # Es ist bereits ein Alpine-Linux-Template enthalten, das verwendet werden kann, um zu testen, ob das Setup funktioniert.\nAusführung einer Alpine-Linux-VM\nAußerdem ist der Zugriff auf die Konsole der VM einfach:\nVM-Konsole über Browser\nKubernetes # OpenNebula bietet einen Marktplatz, auf dem Servicetemplates für Kubernetes verfügbar sind.\nOpenNebula-Servicetemplate für K8S\nFolgen Sie der Dokumentation und Sie erhalten innerhalb von Minuten ein laufendes K8S-Cluster. In diesem Fall wurde dies über die Sunstone-Benutzeroberfläche durchgeführt. Für die Automatisierung ist es jedoch auch über die Befehlszeile oder mit Terraform-Providern möglich.\nOneFlow-Service OneKE 1.33\nLaufendes K8S-Cluster\nMiniONE ist schön, um mit OpenNebula zu arbeiten und es kennenzulernen. Es gab viele Fortschritte, und ich werde OpenNebula auch nutzen, um mein Homelab darauf aufzubauen. Mehr darüber in einem anderen Artikel. Vielleicht in naher Zukunft.\nDanke an die OpenNebula Systems-Community für diese großartige Lösung!\n","date":"18. Oktober 2025","externalUrl":null,"permalink":"/posts/opennebula-evaluation-for-homelab/","section":"Blog","summary":"Ursprünglich veröffentlicht auf LinkedIn am 2025-10-18.\nDa ich OpenNebula seit einiger Zeit nicht mehr verwendet habe, aber in der Vergangenheit gute Erfahrungen damit gemacht habe, habe ich beschlossen zu prüfen, was es in diesem Projekt Neues gibt. Daher habe ich eine miniONE-Instanz im Proxmox-Homelab instanziiert.\n","title":"OpenNebula-Bewertung für Homelab","type":"posts"},{"content":"","date":"16. Oktober 2025","externalUrl":null,"permalink":"/categories/cloud/","section":"Categories","summary":"","title":"Cloud","type":"categories"},{"content":"","date":"16. Oktober 2025","externalUrl":null,"permalink":"/tags/cloud/","section":"Tags","summary":"","title":"Cloud","type":"tags"},{"content":"","date":"16 Oktober 2025","externalUrl":null,"permalink":"/en/tags/enterprise/","section":"Tags","summary":"","title":"Enterprise","type":"tags"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2025-10-16.\nIn der Technologie-Welt wird ein vertrautes Muster zunehmend disruptiv. Wir alle haben die aktuellen Schlagzeilen und Industrie-Artikel gelesen, die über Lizenzchaos und plötzliche Kostensteigerungen berichten, die folgen, wenn große Technologieunternehmen wichtige Branchenplayer übernehmen. Die Botschaft ist klar: Wenn proprietäre Giganten Macht konsolidieren, verändern sich die Bedingungen oft dramatisch, sodass unzählige Unternehmen verletzlich zurückbleiben.\nDieser vorhersehbare Zyklus veranlasst Unternehmen, dringend nach Auswegen und langfristigen Alternativen zu suchen. Aber hier liegt die Ironie: Viele der zuverlässigsten Alternativen sind keine neu erfundenen Lösungen; es sind Open-Source-Frameworks, die seit Jahrzehnten verfügbar, community-getestet und widerstandsfähig sind.\nAus meiner Perspektive ist diese branchenweite Herausforderung weniger eine Krise als vielmehr eine riesige Chance für Unternehmen, ihre Infrastruktur zukunftssicher zu machen.\nIch möchte ein konkretes Beispiel für diese Widerstandsfähigkeit teilen. Vor einigen Jahren hatte ich das Privileg, Teil eines großartigen Teams bei Runtastic zu sein. Wir haben bewusst eine strategische Entscheidung getroffen, unsere gesamte Infrastruktur mit einem unerschütterlichen Fokus auf Open-Source-Technologien aufzubauen.\nAus diesem Grund teile ich unsere Geschichte heute mit Ihnen: um zu zeigen, dass mächtige, nachhaltige und herstellerunabhängige Alternativen nicht nur existieren – sie sind der Schlüssel zu langfristiger Stabilität und Erfolg.\nVorträge: # 2014: OpenNebulaConf 2014 - OpenNebula as an alternative to commercial products by Armin Deliomini 2015: Take the Next Storage Step by Armin Deliomini - Runtastic 2015: Open Source driven Datacenter - Gerhard Sulzberger - Runtastic 2017: OpenNebulaConf2017EU - Hyper converged infrastructure - Armin Deliomini - Runtastic Artikel: # 2015: Why Did We Choose OpenNebula for Runtastic? Ich hoffe, dies ist eine Inspiration für einige Teams, ebenfalls Open-Source-Alternativen zu evaluieren.\nUnd vielen Dank an meine ehemaligen Kollegen im Infrastruktur-Team bei Runtastic.\n","date":"16. Oktober 2025","externalUrl":null,"permalink":"/posts/enterprise-cloud-alternatives/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2025-10-16.\nIn der Technologie-Welt wird ein vertrautes Muster zunehmend disruptiv. Wir alle haben die aktuellen Schlagzeilen und Industrie-Artikel gelesen, die über Lizenzchaos und plötzliche Kostensteigerungen berichten, die folgen, wenn große Technologieunternehmen wichtige Branchenplayer übernehmen. Die Botschaft ist klar: Wenn proprietäre Giganten Macht konsolidieren, verändern sich die Bedingungen oft dramatisch, sodass unzählige Unternehmen verletzlich zurückbleiben.\n","title":"Enterprise Cloud Alternatives - are not newly invented","type":"posts"},{"content":"","date":"16 Oktober 2025","externalUrl":null,"permalink":"/en/tags/infrastructure/","section":"Tags","summary":"","title":"Infrastructure","type":"tags"},{"content":"","date":"16. Oktober 2025","externalUrl":null,"permalink":"/tags/infrastruktur/","section":"Tags","summary":"","title":"Infrastruktur","type":"tags"},{"content":"","date":"16. Oktober 2025","externalUrl":null,"permalink":"/tags/open-source/","section":"Tags","summary":"","title":"Open Source","type":"tags"},{"content":"","date":"16. Oktober 2025","externalUrl":null,"permalink":"/tags/unternehmen/","section":"Tags","summary":"","title":"Unternehmen","type":"tags"},{"content":"","date":"28. Juni 2025","externalUrl":null,"permalink":"/categories/education/","section":"Categories","summary":"","title":"Education","type":"categories"},{"content":"","date":"28. Juni 2025","externalUrl":null,"permalink":"/tags/education/","section":"Tags","summary":"","title":"Education","type":"tags"},{"content":"","date":"28. Juni 2025","externalUrl":null,"permalink":"/tags/homelab/","section":"Tags","summary":"","title":"Homelab","type":"tags"},{"content":"Kleine Dorfschule braucht eine IT Infrastruktur und der Aufbau soll mit Jugendlichen der Schule erfolgen. Es soll Spaß machen und ungezwungen sein. Jeder der Mitmachen will kann und darf dabei sein. Digitale unabhängigkeit fängt schon bei der Auswahl der Software und Komponenten an. In unserem Fall haben wir Hardware von einem ehemaligen Österreichischen Startup erhalten.\nIn diesem Fall Server und Netzwerk Hardware sowie Racks. Ein Teil des learnings wird sein das diese Server Energie verbrauchen und wir dieses Thema aktiv messen und angehen werden um das zu optimieren.\nAls ersten Teil haben die Schüler erlernt das man etwas Planen soll, bevor man zur Tat schreitet. Das beginnt bei der Netzwerk segmentierung.\n","date":"28. Juni 2025","externalUrl":null,"permalink":"/posts/it-labor-fuer-dorfschule/","section":"Blog","summary":"Kleine Dorfschule braucht eine IT Infrastruktur und der Aufbau soll mit Jugendlichen der Schule erfolgen. Es soll Spaß machen und ungezwungen sein. Jeder der Mitmachen will kann und darf dabei sein. Digitale unabhängigkeit fängt schon bei der Auswahl der Software und Komponenten an. In unserem Fall haben wir Hardware von einem ehemaligen Österreichischen Startup erhalten.\n","title":"IT Labor für Dorfschule","type":"posts"},{"content":"","date":"28. Juni 2025","externalUrl":null,"permalink":"/tags/opensource/","section":"Tags","summary":"","title":"OpenSource","type":"tags"},{"content":"","date":"22. Januar 2025","externalUrl":null,"permalink":"/tags/grafana/","section":"Tags","summary":"","title":"Grafana","type":"tags"},{"content":"","date":"22. Januar 2025","externalUrl":null,"permalink":"/categories/monitoring/","section":"Categories","summary":"","title":"Monitoring","type":"categories"},{"content":"","date":"22. Januar 2025","externalUrl":null,"permalink":"/tags/monitoring/","section":"Tags","summary":"","title":"Monitoring","type":"tags"},{"content":"","date":"22. Januar 2025","externalUrl":null,"permalink":"/tags/prometheus/","section":"Tags","summary":"","title":"Prometheus","type":"tags"},{"content":"","date":"22. Januar 2025","externalUrl":null,"permalink":"/tags/snmp/","section":"Tags","summary":"","title":"SNMP","type":"tags"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2025-01-22.\nBei der Arbeit mit Cloud-Umgebungen habe ich ausgiebig Prometheus, Grafana und Alertmanager für die Überwachung eingesetzt. Allerdings stoße ich bei der Arbeit mit TV-Headends auf eine häufige Herausforderung: das Fehlen von Prometheus-Endpunkten zum direkten Abrufen von Metriken.\nUm dies zu überwinden, können wir das weit verbreitete SNMP (Simple Network Management Protocol) nutzen.\nIntegration von SNMP mit Prometheus # SNMP Exporter # Prometheus bietet einen offiziellen Open-Source-SNMP-Exporter, der das Sammeln von SNMP-Daten erleichtert. Um Metriken effizient von weniger verbreitetem Hardware zu sammeln, verwenden Sie die vom Hersteller bereitgestellten MIB-Dateien (Management Information Base). Astro Strobel BC4-Headends bieten zum Beispiel eine herunterladbare ZIP-Datei mit den relevanten MIBs aus der Weboberfläche ihres Controllers an. Dieser Ansatz ermöglicht eine nahtlose Integration traditioneller SNMP-Daten mit den leistungsstarken Überwachungsfunktionen des Prometheus-Ökosystems.\nUm den SNMP-Exporter für Astro Strobel BC4 zu konfigurieren, befolgen Sie diese Schritte.\nBereiten Sie MIB-Dateien vor: Laden Sie das ZIP-Archiv vom BC4-Management-Controller herunter und kopieren Sie die AstroStrobel*.mib-Dateien in das snmp_exporter/generator/mibs-Verzeichnis. Konfigurieren Sie den Generator: Befolgen Sie die Dokumentation innerhalb des snmp_exporter-Projekts, um den MIB-Generator einzurichten. Fügen Sie den folgenden Eintrag zur generator.yml-Datei hinzu: Führen Sie den SNMP-Exporter aus: Laden Sie das betriebssystemspezifische snmp_exporter-Archiv herunter. Entpacken Sie das Archiv und platzieren Sie die generierte snmp.yml-Datei im snmp_exporter-Verzeichnis. Starten Sie den snmp_exporter-Dienst. Es ist einfach zu überprüfen, ob der SNMP-Exporter Metriken erfolgreich von Ihrem Gerät sammelt, indem Sie eine einfache HTTP-Anfrage stellen. Dies kann mit einem Webbrowser oder dem curl-Befehlszeilen-Tool erfolgen. Ersetzen Sie die snmp_target_IP durch eine echte IP.\nDer snmp_exporter ist korrekt konfiguriert, wenn er Metriken in Bezug auf das SNMP-Modul erfolgreich abruft.\nPrometheus # Prometheus ist ein Open-Source-Überwachungs- und Warnsystem, das Zeitreihendaten sammelt und speichert. Es eignet sich hervorragend für Zeitreihendaten mit hohem Volumen und ist daher ideal für die Überwachung dynamischer Systeme und Anwendungen.\nDas Scrape-Ziel für den snmp_exporter muss in der Prometheus-Konfiguration hinzugefügt werden. Als erster Schritt ein Verzeichnis für die Konfiguration und die Konfigurationsdatei erstellen.\nUm die Dinge einfach zu halten, wird der Prometheus-Container mit dem Host-Netzwerk gestartet und die Konfigurationsdatei wird in den Container eingebunden.\nÖffnen Sie die Prometheus-UI über http://127.0.0.1:9090 und überprüfen Sie, ob Prometheus das Ziel erreichen und die Metriken abrufen kann.\nÜberprüfen, ob der Zielstatus OK ist\nÜberprüfen, ob Metriken bereits verfügbar sind\nGrafana # Grafana ist eine Lösung zur Visualisierung von Dashboards und kann verschiedene Datenquellen verwenden. Es ist auch als Container verfügbar, was für Tests nützlich ist. Bei Verwendung mit dem Host-Netzwerk ist der Webdienst unter http://127.0.0.1:3000 mit den Standardanmeldedaten admin/admin verfügbar.\nAls erster Schritt muss Prometheus als Datenquelle hinzugefügt werden.\nDatenquelle in Grafana hinzufügen\nUm die gesammelten Prometheus-Daten effektiv zu visualisieren, erstellen Sie ein Dashboard mit Panels. Das Verständnis der verfügbaren Metriken ist entscheidend für diesen Prozess. Nehmen wir bc4DynamicNIT als Beispiel, um dies zu veranschaulichen.\nDer Objekttyp \u0026ldquo;bc4DynamicNIT\u0026rdquo; innerhalb der AstroStrobel-Buscontroller.mib ist als Integer-Datentyp spezifiziert. Die möglichen Werte stellen einen Zustand dar.\nDieses Wissen ermöglicht es Ihnen, Wertzuordnungen effektiv zu verwenden, um den Zustand des Systems genau im Dashboard zu visualisieren.\nBeispiel für Wertzuordnung\nMit diesem Verständnis der MIB und des snmp_exporters ist es einfach, weitere Panels zu erstellen.\nBC- und NIT-Status\nGerätetemperaturen\nKanal-Signalstatus\nDie Integration von SNMP-Daten in Ihre Überwachungslösung bietet bedeutende Vorteile. Sie können informative Dashboards erstellen und vor allem ein robustes proaktives Warnsystem einrichten, um die optimale Leistung und Zuverlässigkeit Ihres TV-Headends sicherzustellen.\nDieser flexible Überwachungsstapel kann leicht mit anderen Diensten, Datenbanken und Lösungen integriert werden. Prometheus und Grafana dienen als zentraler Knotenpunkt zum Sammeln und Visualisieren von Metriken und bieten eine einheitliche Übersicht über Ihr gesamtes System. Es gibt viele Exporter und Integrationen sowie Client-Bibliotheken verfügbar, um Prometheus zu Anwendungen hinzuzufügen.\nAlertmanager # Alertmanager ist ein Open-Source-System, das entwickelt wurde, um Warnungen zu verwalten und weiterzuleiten, die von Überwachungssystemen wie Prometheus generiert werden. Durch die Integration von Alertmanager mit Prometheus und SNMP für die TV-Headend-Überwachung ist es möglich, ein proaktives und effizientes Warnsystem einzurichten, das eine zeitnahe Problemlösung sicherstellt und Serviceunterbrechungen minimiert.\nFazit # Dieser flexible Stapel, der durch ein reichhaltiges Ökosystem von Exportern unterstützt wird, ermöglicht eine nahtlose Integration mit verschiedenen Diensten und Infrastrukturkomponenten. Prometheus und Grafana dienen als zentraler Knotenpunkt zum Sammeln und Visualisieren von Metriken und bieten einen umfassenden Überblick über die Systemleistung. Alertmanager, mit seiner umfangreichen Unterstützung für Empfänger, stellt sicher, dass kritische Ereignisse rechtzeitig und effektiv gemeldet werden.\nIch hoffe, dieser Artikel hat Ihnen einen interessanten Überblick über die Überwachung von TV-Headends basierend auf SNMP und Prometheus gegeben. Fühlen Sie sich frei, Ihre Gedanken in den Kommentaren zu teilen.\nHaftungsausschluss: Ich habe keine finanzielle oder materielle Vergütung von einem der in diesem Artikel genannten Unternehmen erhalten. Die Idee für dieses Setup kam mir während eines Gesprächs mit einem kleinen Kabel-TV-Anbieter. Ich war wirklich neugierig zu sehen, was möglich ist.\nMöge die Macht mit dir sein\nGerhard Sulzberger\n","date":"22. Januar 2025","externalUrl":null,"permalink":"/posts/monitoring-a-tv-headend/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2025-01-22.\nBei der Arbeit mit Cloud-Umgebungen habe ich ausgiebig Prometheus, Grafana und Alertmanager für die Überwachung eingesetzt. Allerdings stoße ich bei der Arbeit mit TV-Headends auf eine häufige Herausforderung: das Fehlen von Prometheus-Endpunkten zum direkten Abrufen von Metriken.\n","title":"Überwachung eines TV-Headends","type":"posts"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2025-01-19.\nDiese Laborumgebung wurde für eine Präsentation an einer örtlichen Schule erstellt. Die Schule, eine kleine, gemeinschaftlich geführte Einrichtung, die auf Montessori-Prinzipien basiert, betreut etwa 70 Kinder und Lehrer. Open Source und Freie Open-Source-Software (FOSS) werden von einigen der Lehrkräfte geschätzt, und sie baten um Unterstützung bei bestimmten Aspekten der Schul-Infrastruktur. Unter Berücksichtigung dieser Präferenz wurde eine Cloud-Lösung als ungeeignet erachtet.\nWichtiger Hinweis: Dies ist ausschließlich eine LABOR-Umgebung und sollte NICHT für Produktionszwecke verwendet werden. Es fehlen entscheidende Sicherheitsmaßnahmen, einschließlich Datenschutz, Backups, Verschlüsselung, Netzwerkisolierung und andere für Produktionsumgebungen erforderliche Elemente. Dieses Labor dient ausschließlich Demonstrations- und Bildungszwecken.\nZiel # Das primäre Ziel bestand darin, die Dateifreigabe und Benutzerverwaltung auf Linux-Geräten innerhalb der Schule zu optimieren.\nLaborumgebung # Da die Schule über kein dediziertes IT-Labor für solche Projekte verfügt (vorhandene Raspberry Pi-Geräte werden hauptsächlich für experimentelles Hacken und Freizeitzwecke verwendet), wurde beschlossen, das Labor in einer virtualisierten Umgebung auf dem persönlichen Laptop des Entwicklers zu erstellen. Dies bot auch die Möglichkeit, die Leistung eines neuen Tuxedo Infinitybook Pro Intel Gen9-Systems zu bewerten.\nVerschachtelte Virtualisierung # Um dies zu erreichen, war verschachtelte Virtualisierung erforderlich, die durch KVM aktiviert wird, das in den Linux-Kernel integriert ist. Die folgenden Schritte überprüfen die KVM-Verfügbarkeit auf dem aktuellen Gerät.\nFazit\nDie Ausgabe bestätigt, dass KVM und verschachtelte Virtualisierung auf diesem Gerät unterstützt werden. Dies ermöglicht die Erstellung virtueller Maschinen innerhalb anderer virtueller Maschinen und bietet eine flexible Umgebung für Experimente und Entwicklung.\nVirtual Machine Manager # Mit libvirt, qemu und virt-manager gibt es Tools, um die Dinge einzurichten. virt-manager ist eine sehr einfache Desktop-Benutzeroberfläche zur Verwaltung von libvirt. Da es ein sehr häufiges Paket in vielen Distributionen ist, lässt es sich auch einfach unter TuxedoOS installieren.\nProxmox-Setup # Laden Sie dann die Installations-ISO für Proxmox-VE herunter und fügen Sie sie einem Verzeichnis hinzu, auf das libvirt zugreifen kann. In diesem Fall habe ich ein Verzeichnis virtual-images in meinen Dokumenten erstellt.\nvirt-manager qemu/KVM-Speicherdetails\nErstellen wir eine Proxmox-VE-Instanz.\nSobald die Konfiguration abgeschlossen ist, wird eine neue virtuelle Maschine erstellt. Der Proxmox-VE-Setup-Prozess beginnt dann und verbindet sich automatisch mit der VM. Falls diese automatische Verbindung fehlschlägt, verwenden Sie die virt-viewer- oder virt-manager-Benutzeroberfläche, um eine Verbindung zur grafischen Schnittstelle der virtuellen Maschine herzustellen.\nFür diese Laborumgebung wurde eine einzelne Festplatte konfiguriert. Um die Funktionen von Proxmox zu erkunden, die auf dem ZFS-Dateisystem basieren, wurde ZFS als primäres Dateisystem für das Labor gewählt.\nWichtiger Hinweis: Beim Ausführen mehrerer Instanzen muss bei der IP-Adressvergabe sorgfältig vorgegangen werden. Stellen Sie sicher, dass jede Instanz innerhalb des virtuellen Netzwerks eine eindeutige IP-Adresse hat. Andernfalls kann es zu unerwartetem Netzwerkverhalten kommen, was eine wertvolle Lernmöglichkeit in Bezug auf Netzwerkkonfigurationen darstellt.\nWährend die Automatisierung des Konfigurationsprozesses möglich ist, wurde dies als über den Rahmen dieser Präsentation hinausgehend erachtet.\nProxmox-VE-Installer-Übersicht\nCluster-Setup\nMelden Sie sich bei einem Proxmox-Knoten an und richten Sie einen Cluster über Datacenter \u0026gt; Cluster \u0026gt; \u0026ldquo;Cluster erstellen\u0026rdquo; ein. Später benötigen wir die Join-Informationen und kopieren diese an einen anderen Knoten dieses Clusters.\nProxmox-Cluster erstellen\nCluster-Join-Informationen\nDies ist eine Base64-kodierte Zeichenfolge. Falls Sie daran interessiert sind, was darin enthalten ist, ist base64 -d Ihr Freund.\nCluster-Join\nUnivention Corporate Server # Also haben wir einen laufenden Proxmox-Cluster und können das ISO-Image hochladen, um Univention Corporate Server zu installieren. Das Installations-ISO ist als Download von Univention verfügbar.\nUCS-ISO hochladen\nNach dem Hochladen des UCS-Installations-ISO eine VM auf demselben pve-Knoten erstellen.\nZusammenfassung der VM-Konfiguration\nDie Konsole der virtuellen Maschine kann über den Browser geöffnet werden.\nKonsole der virtuellen Maschine über den Browser\nIn diesem Labor wurden die Standard-Einstellungen für die UCS-Installation verwendet. Nach der OS-Installation startet UCS neu und der Konfigurationsprozess kann beginnen. Es wird ein Aktivierungsschlüssel benötigt, der per E-Mail erhalten wird.\nIn dieser Laborumgebung habe ich eine neue UCS-Domäne erstellt.\nNeue UCS-Domäne erstellen\nGeben Sie den Namen der Organisation und eine gültige E-Mail-Adresse ein. Univention verwendet diese Adresse, um den Aktivierungsschlüssel an Sie zu senden.\nOrganisationsdetails\nKonfigurieren Sie den FQDN der Maschine und die LDAP-Root.\nNetzwerk-Konfiguration\nÜberprüfen Sie die Einstellungen und starten Sie die Systemkonfiguration.\nSystemkonfiguration starten\nDer Konfigurationsprozess richtet die gesamte Domäne und Maschine ein. Wenn dieser abgeschlossen ist, können Sie sich als Administrator über einen Webbrowser anmelden. Um zu beginnen, importieren Sie die per E-Mail erhaltene Lizenz unter System \u0026gt; Willkommen \u0026gt; Lizenzimport.\nLizenzimport\nSystem-Dashboard\nErstellen Sie ein Benutzerkonto innerhalb des Univention Corporate Servers (UCS), das für Subsequent-Logins vom Linux-Mint-Betriebssystem aus verwendet wird.\nUCS-Benutzer erstellen\nLinux Mint # Laden Sie das ISO-Image vom Linux Mint Projekt herunter und laden Sie es auf einen Proxmox-Knoten hoch.\nLinux Mint ISO-Download\nProxmox-ISO-Speicher\nVerbinden Sie sich mit der grafischen Konsole und installieren Sie Linux Mint. Für das Labor wurde die OEM-Installation mit keinen speziellen Einstellungen verwendet.\nUnivention Domain Join # Es gibt ein Problem, wenn der Univention-Domain-Join mit Linux Mint verwendet wird. Aufgrund fehlender Abhängigkeiten wird dies fehlschlagen. Das ist einfach zu lösen. Univention, vielleicht schauen Sie sich mal hier an.\nÖffnen Sie Univention Domain Join und fügen Sie den Computer hinzu.\nUnivention Domain Join\nIn UCS wird das hinzugefügte Gerät als Ubuntu-Computer aufgelistet.\nComputer hat der Domäne beigetreten\nStarten Sie den Linux-Mint-Computer neu und melden Sie den OEM-Benutzer ab. Vielleicht sollten Sie sich später auch vom OEM-Benutzer trennen. Überprüfen Sie jetzt, ob es möglich ist, sich als der Benutzer anzumelden, den wir in UCS erstellt haben.\nUCS-Benutzer am Client-Gerät\nEs ist möglich, Gruppen über UMC zu verwalten und zuzuweisen, daher empfehle ich, die Dokumentation zu lesen.\nNextcloud # Es ist möglich, Nextcloud über das Univention App Center zu installieren. Es konfiguriert Nextcloud und integriert es in die UCS-Umgebung. Es gibt erweiterte Setups möglich. Ich möchte nur erwähnen, dass Univention seinen eigenen Mechanismus zur Konfiguration integrierter Apps hat. Seien Sie sich dessen bewusst, bevor Sie Konfigurationsdateien innerhalb von UCS ändern.\nNextcloud im UCS App Center\nIn den UCS-Benutzereinstellungen wird die Nextcloud-App automatisch hinzugefügt.\nAktive Nextcloud-App in der Benutzerkonfiguration\nDas Univention-Portal dient als zentraler Punkt für die Präsentation der verfügbaren Dienste. Dadurch können Benutzer auf dem Linux-Mint-Client leicht über das Portal auf den Nextcloud-Dienst zugreifen.\nNextcloud-Dienst auf dem Univention-Portal\nNextcloud-SSO\nUnivention-Portal-SSO-Login\nNextcloud-Benutzer, die mit UCS verwaltet werden\nZusätzliche Funktionen # Proxmox-VM-Replikation\nIch habe Ceph in der Vergangenheit in größeren Rechenzentrums-Setups mit vielen Maschinen und Leaf-Spine-Netzwerkarchitektur verwendet. Das wird in diesem Fall nicht möglich sein. Aber da Proxmox ZFS unterstützt, möchte ich auch einige Funktionen dort testen. Eine Funktion ist die Replikation.\nVM-Replikation\nProxmox-VM-Migration\nEine weitere Möglichkeit ist die Migration von VMs zwischen Knoten. Seien Sie vorsichtig mit verknüpften Klonen von VM-Vorlagen, da die Migrationsfunktionen nicht unterstützt werden, wenn die VM lokalen Speicher verwendet.\nLive-Migration\nFazit # Open Source bietet viele Lösungen mit umfassenden Funktionen für verschiedene Bedürfnisse. Für dieses Projekt umfassen die nächsten Schritte die Definition der Netzwerkarchitektur, der Hardware-Anforderungen sowie angemessener Backup- und Sicherheitsmaßnahmen.\nEs ist wichtig zu beachten, dass keines der in diesem Artikel erwähnten Unternehmen eine finanzielle Vergütung erhalten hat.\nBesonderer Dank gilt den lebendigen Communities rund um Open-Source-Software und insbesondere denen, die folgende Projekte unterstützen:\nTUXEDO Computers GmbH Proxmox Server Solutions Univention Nextcloud Fühlen Sie sich frei, mich mit brennenden Fragen oder brillantem Verbesserungsideen zu kontaktieren! Und denken Sie daran: 2025 ist das Jahr des Linux-Desktops (zumindest in diesen heiligen Hallen des Lernens).\nMöge die Kraft von Open Source mit Ihnen allen sein!\nGerhard Sulzberger\n","date":"19. Januar 2025","externalUrl":null,"permalink":"/posts/virtualized-school-it-lab/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2025-01-19.\nDiese Laborumgebung wurde für eine Präsentation an einer örtlichen Schule erstellt. Die Schule, eine kleine, gemeinschaftlich geführte Einrichtung, die auf Montessori-Prinzipien basiert, betreut etwa 70 Kinder und Lehrer. Open Source und Freie Open-Source-Software (FOSS) werden von einigen der Lehrkräfte geschätzt, und sie baten um Unterstützung bei bestimmten Aspekten der Schul-Infrastruktur. Unter Berücksichtigung dieser Präferenz wurde eine Cloud-Lösung als ungeeignet erachtet.\n","title":"Virtualisiertes Schul-IT-Labor","type":"posts"},{"content":" Ziele # Die Errichtung einer PV-Anlage, um den Energiebedarf der Warmwasseraufbereitung abzudecken. Inselbetrieb ist nicht vorgesehen.\nAusgangslage: # Boiler zur Warmwasseraufbereitung: warmwasser-waermepumpe-wpa-450\nNominale Stromaufnahme ~1 KW (Wärmepumpe)\nNetzzugang 4 KW\nDurchführung # Planung PV: # Einbindung in Homeassistant 3,5 KWp Generatorleistung Bestehendes Open-Source-Projekt, um Daten des Wechselrichters auszulesen und in Homeassistant zu integrieren Einbinden der Zählerdaten in Homeassistant Mikrowechselrichter, um Gleichspannungen in Strings gering zu halten Komponenten: # Homeassistant in Docker auf bestehendem Linux-Nextcloud-Server MQTT-Server in Homeassistant Daten auf NFS-Storages Hoymiles Wechselrichter HMS-1600 2x OpenDTU DIAMEX DX-DTU-MAX, Gateway für Hoymiles 1x Mitterbauer AMIS-Leser 1x JA Solar Solarmodul 435W Glas-Glas Full Black Bifacial 8x Einmeldung NetzOOE: # Da diese Anlage die Generatorleistung von 800W übersteigt und somit kein Balkonkraftwerk ist, habe ich die Anlage bei der NetzOOE eingemeldet. Dies kann von einem Elektrotechnik-Fachbetrieb, der Marktpartner bei der NetzOOE ist, eingemeldet werden. Wird der Netzzugang nicht überschritten, ist das eine relativ unkomplizierte Sache.\nZählerdaten auslesen: # Die Möglichkeit, die Daten auszulesen, muss beim Netzbetreiber aktiviert werden. Dies kann sehr einfach über das Portal der NetzOOE erledigt werden.\nAufbau: # 3 Paneele in Südausrichtung, 15 Grad aufgeständert, mit Hoymiles HMS-1600 auf Phase 1 3 Paneele in Westausrichtung, 15 Grad aufgeständert, mit Hoymiles HMS-1600 auf Phase 2 Auf dem Carport aufgebaut, um leicht mit der Versuchsanlage arbeiten zu können OpenDTU verbunden mit den Wechselrichtern liest die Werte aus und sendet diese via WLAN an die MQTT des Homeassistant AMIS-Leser in das WLAN hängen und die Werte ebenfalls via MQTT versenden Homeassistant MQTT auslesen Zeitsteuerung der Warmwasseraufbereitung Erste Daten # Planung eines weiteren Ausbaus # 4 Paneele Nord auf Dach 40% auf Phase 1 4 Paneele Süd auf Dach 40% auf Phase 2 Schaltkontakt nutzen, um bei Solarenergie den Boiler zu laden Testen des Aufbaus in den Wintermonaten Da wir in den Wintermonaten mittels Kachelofen und Herd heizen, ist auch in den Wintermonaten der meiste elektrische Energieverbrauch die Warmwasseraufbereitung.\n","date":"2. August 2024","externalUrl":null,"permalink":"/posts/pv_2024/","section":"Blog","summary":"Ziele # Die Errichtung einer PV-Anlage, um den Energiebedarf der Warmwasseraufbereitung abzudecken. Inselbetrieb ist nicht vorgesehen.\nAusgangslage: # Boiler zur Warmwasseraufbereitung: warmwasser-waermepumpe-wpa-450\n","title":"PV Anlage","type":"posts"},{"content":"","date":"24. Mai 2023","externalUrl":null,"permalink":"/tags/backup/","section":"Tags","summary":"","title":"Backup","type":"tags"},{"content":"","date":"24. Mai 2023","externalUrl":null,"permalink":"/tags/kubernetes/","section":"Tags","summary":"","title":"Kubernetes","type":"tags"},{"content":"","date":"24. Mai 2023","externalUrl":null,"permalink":"/tags/vault/","section":"Tags","summary":"","title":"Vault","type":"tags"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2023-05-24.\nHashiCorp Vault # In Vault Enterprise gibt es eine integrierte Lösung, um Backups in S3-kompatible Speicher hochzuladen. In der Open-Source-Version von Vault fehlt diese Funktion, also musste ich eine Lösung dafür erstellen.\nMeistens verwende ich den integrierten Raft-Speicher innerhalb des Vault-Clusters in Kubernetes. Die Daten dieses StatefulSets werden in PersistentVolumeClaims gespeichert. (Wo ich auch die Standard-PersistentVolumeReclaimPolicy auf Retain gepatcht habe, um das Löschen des StatefulSets zu verhindern, aber das ist eine andere Geschichte.)\nAlso habe ich im Internet nach Inspiration gesucht und einige Quellen gefunden, denen ich mehr oder weniger gefolgt bin.\nGitHub - adfinis/vault-raft-backup-agent: Vault Raft Integrated Storage Snapshot Automation* HashiCorp Vault Backup und Restore Raft Snapshots von Kubernetes zu AWS S3* Erstellen eines Vault-Backup-Containers # Ich habe mich entschieden, einen Container basierend auf Alpine 3.18 zu erstellen. Es gibt aktuelle Vault- und aws-cli-Pakete, die in meinem Fall gut funktioniert haben. Der Speicherplatz des Images beträgt etwa 90 MB. Und wir haben bereits GitLab-Pipelines, um Container zu erstellen und zu testen. Also war der Aufwand minimal.\nFROM alpine:3.1 LABEL version=\u0026#34;1.0.0\u0026#34; \\ maintaner=\u0026#34;Gerhard Sulzberger \u0026lt;********@*****\u0026gt;\u0026#34; \\ description=\u0026#34;Image used for vault-backups\u0026#34; RUN apk --no-cache add \\ vault=1.13.2-r0 \\ aws-cli=2.11.21-r0 \\ libcap=2.69-r0 \\ \u0026amp;\u0026amp; addgroup vaultbackup \\ \u0026amp;\u0026amp; adduser -G vaultbackup -g \u0026#34;Backup User\u0026#34; -s /bin/ash -D vaultbackup \\ \u0026amp;\u0026amp; setcap cap_ipc_lock= /usr/sbin/vault USER vaultbackup WORKDIR /home/vaultbackup COPY backupVault.sh /home/vaultbackup/backupVault.sh ENTRYPOINT [\u0026#34;/bin/sh\u0026#34;, \u0026#34;-e\u0026#34;, \u0026#34;/home/vaultbackup/backupVault.sh\u0026#34;] Die Hauptmagie passiert im backupVault.sh-Skript.\n#!/bin/sh VAULT_TOKEN=$(vault write -field=token auth/approle/login role_id=\u0026#34;$VAULT_APPROLE_ROLE_ID\u0026#34; secret_id=\u0026#34;$VAULT_APPROLE_SECRET_ID\u0026#34;) export VAULT_TOKEN DATE=$(date +%Y%m%d-%H%M%S) vault operator raft snapshot save /tmp/vault-raft-\u0026#34;$DATE\u0026#34;.snap /usr/bin/aws --endpoint-url \u0026#34;$AWS_ENDPOINT_URL\u0026#34; s3 cp /tmp/vault-raft-\u0026#34;$DATE\u0026#34;.snap s3://\u0026#34;$AWS_BUCKET\u0026#34;/vault/ rm /tmp/vault-raft-\u0026#34;$DATE\u0026#34;.snap echo \u0026#34;Completed the backup - \u0026#34; \u0026#34;$DATE\u0026#34; Die Vault-CLI erstellt ein kurzlebiges Token über die AppRole-Authentifizierung. Es erstellt das Snapshot und mit der aws-cli wird das Snapshot in den Objektspeicher hochgeladen. Was in meinem Fall kein Standard-AWS-S3 ist.\nDas Skript muss auf jeden Fall verbessert werden, weil es keine Sicherheit gibt, falls ein Fehler auftritt. Aber es ist ein Startpunkt, den ich mit einigen TRY/CATCH-Funktionalitäten erweitern kann.\nKubernetes CronJob # Die Kubernetes CronJob-Ressource kann verwendet werden, um zu planen, wann der Vault-Backup-Pod ausgeführt werden soll.\napiVersion: batch/v1 kind: CronJob metadata: name: vault-snapshot-cronjob spec: schedule: \u0026#34;15 */12 * * *\u0026#34; jobTemplate: spec: template: spec: containers: - name: vault-backup image: registry******/******/vault-backup:1.0.0 imagePullPolicy: IfNotPresent envFrom: - secretRef: name: vault-snapshot-agent-token - secretRef: name: vault-snapshot-s3 env: - name: VAULT_ADDR value: https://vault-active.vault.svc.cluster.local:8200 imagePullSecrets: - name: registry-cred restartPolicy: Never backoffLimit: 4 Es gibt etwas Magie in der Art und Weise, wie die Geheimnisse verwaltet werden. Der External-Secrets-Operator verwaltet die Geheimnisse, die als Umgebungsvariablen verwendet werden. Auch die imagePullSecrets werden auf diese Weise verwaltet. Der External-Secrets-Operator verwendet die Vault-Kubernetes-Authentifizierung und erstellt, wenn er die richtige Richtlinie und Berechtigung hat, ein Kubernetes-Geheimnis aus einem Vault-Geheimnis.\nEine gute Dokumentation, wie dies funktioniert, finden Sie hier.\napiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: name: vault-snapshot-s3 spec: dataFrom: - extract: # AWS_ACCESS_KEY_ID # AWS_BUCKET # AWS_ENDPOINT_URL # AWS_SECRET_ACCESS_KEY key: kvstorage/path/to/secret/vault-snapshot-s3 conversionStrategy: Default refreshInterval: 30s secretStoreRef: kind: ClusterSecretStore name: secrets target: creationPolicy: Owner deletionPolicy: Retain Vault ist der perfekte Ort, um Anmeldedaten zu speichern.\nAntipattern?\nIch habe es ein bisschen für andere Umgebungsvariablen missbraucht. Ich habe es jetzt bemerkt und werde das später ändern müssen und die AWS_ENDPOINT_URL- und AWS_BUCKET-Variablen entfernen.\nSie sollten wahrscheinlich wie jede andere Umgebungsvariable im Manifest wie VAULT_ADDR konfiguriert werden.\nBereitstellung # Die Bereitstellung erfolgt mit ArgoCD nach dem App-of-Apps-Muster. Dadurch kann ich einfach alles in Git einchecken und ArgoCD erledigt die Arbeit.\nArgoCD-Anwendungsübersicht von Vault-Backup\nWiederherstellung # Standardverfahren für die Wiederherstellung eines Vault-Clusters | Vault | HashiCorp Developer* Fazit # Mit etwas Aufwand ist es möglich, Backups der Open-Source-Vault innerhalb von Kubernetes zu S3-Objektspeichern zu automatisieren.\nEs gibt noch todos und Dinge, die in diesem Artikel nicht erwähnt werden.\nBackup-Skript und EntryPoint verbessern Eine tägliche Routine zum Testen von Wiederherstellungsverfahren Überwachung und Warnungen mit dem kube-prometheus-Operator Es wäre interessant zu wissen, wie andere IT-Leute das Backup der HashiCorp-Vaults-Open-Source-Version gelöst haben. Wenn Sie bereit sind, Einblicke oder Kritik zu teilen, fügen Sie bitte einen Kommentar hinzu.\nOfftopic # Da wir viel hinter Bildschirmen arbeiten, werden wir manchmal müde und denken im Kreis. Dann ist es Zeit für eine Pause. So sehr ich Technik auch mag, ich werde immer die uralte Technologie genießen, Gras mit einer Sense zu mähen.\nHaben Sie einen schönen Tag und vergessen Sie nicht, das Leben zu genießen.\nPausen Sie\n","date":"24. Mai 2023","externalUrl":null,"permalink":"/posts/vault-snap-to-s3-in-kubernetes/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2023-05-24.\nHashiCorp Vault # In Vault Enterprise gibt es eine integrierte Lösung, um Backups in S3-kompatible Speicher hochzuladen. In der Open-Source-Version von Vault fehlt diese Funktion, also musste ich eine Lösung dafür erstellen.\n","title":"Vault-Snapshots zu S3 in Kubernetes","type":"posts"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2023-05-12.\nEinführung # Im Jahr 2007, als ich anfing, in der Technologiebranche zu arbeiten, verließen sich IT-Administratoren oft auf Shell-Skripte, um ihre Workflows zu automatisieren. Virtualisierung war noch nicht so verbreitet, und Tools wie PXE-Boot und Bootstrap-Dateien wurden verwendet, um die Installation von Betriebssystemen auf mehreren Servern gleichzeitig zu automatisieren. Die Netzwerkebene wurde sehr oft ohne Automatisierung betrieben. Später gewann auch KVM an Beliebtheit und ermöglichte Administratoren, virtuelle Maschinen zu erstellen und zu verwalten. Als die Infrastruktur komplexer wurde, wurden Konfigurationsmanagement-Tools wie Chef und Ansible beliebt, die es Administratoren ermöglichten, Infrastruktur als Code zu definieren und Konfigurationsänderungen schnell und einfach auf mehreren Servern anzuwenden.\nOpenNebula, eine Open-Source-Cloud-Computing-Plattform, entstand 2008 als beliebte Alternative zu kommerziellen Cloud-Anbietern. OpenNebula bot IT-Administratoren eine Möglichkeit, private Cloud-Infrastrukturen aufzubauen, was es Organisationen ermöglichte, die vollständige Kontrolle über ihre Daten zu behalten. OpenNebula bietet eine einfache und flexible Lösung zum Aufbau und zur Verwaltung virtualisierter Infrastrukturen in beiden, privaten und hybriden Cloud-Umgebungen.\nMit dem Aufstieg des Cloud Computing führte zur Entwicklung von Infrastructure-as-Code(IaC)-Tools wie Terraform und Packer. Terraform machte es möglich, Infrastruktur als Code zu definieren und Cloud-Ressourcen über mehrere Cloud-Anbieter hinweg zu verwalten, während Packer es IT-Administratoren ermöglichte, Maschinen-Images für verschiedene Cloud-Plattformen zu erstellen.\nMit dem Aufkommen der Containerisierung wandten sich IT-Administratoren Container-Orchestrierungstools wie Kubernetes zu. Kubernetes bot Funktionen wie automatische Skalierung, Lastverteilung und Selbstheilung, was es möglich machte, Container im großen Maßstab zu verwalten.\nUm sensible Informationen wie Passwörter und API-Schlüssel zu verwalten, wandten sich IT-Administratoren Tools wie Vault zu. Vault ist ein Open-Source-Tool, das es IT-Administratoren ermöglicht, Geheimnisse sicher zu speichern und zu verwalten und sicherzustellen, dass sensible Informationen sicher aufbewahrt und nur für autorisierte Benutzer zugänglich sind.\nKubernetes-Operatoren wie cloudnative-pg und external-secrets-operator waren besonders hilfreich bei der Verwaltung von Kubernetes-Anwendungen und Geheimnissen, die in externen Systemen gespeichert sind. Der cloudnative-pg-Operator automatisiert die Verwaltung von PostgreSQL-Datenbanken, während der external-secrets-operator es IT-Administratoren ermöglicht, Geheimnisse zu verwalten, die in externen Systemen wie Vault gespeichert sind.\nSchließlich haben IT-Administratoren GitOps-Workflows mit Tools wie ArgoCD übernommen, um ihre Infrastruktur als Code zu verwalten. Mit GitOps wird die gesamte Konfiguration in einem Git-Repository gespeichert, und ArgoCD ermöglicht es IT-Administratoren, ihre Infrastruktur als Code zu definieren und sie mit Git zu verwalten.\nZusammenfassend lässt sich sagen, dass der Aufbau und die Verwaltung von IT-Infrastrukturen in den letzten zwei Jahrzehnten komplexer geworden sind, aber das Aufkommen neuer Tools und Technologien hat es möglich gemacht, hoch effiziente, sichere und skalierbare Infrastrukturen aufzubauen. Von PXE und KVM bis hin zu OpenNebula und GitOps mussten sich IT-Administratoren an neue Tools und Technologien anpassen, um mit der sich ständig verändernden IT-Landschaft Schritt zu halten.\nGitOps mit ArgoCD # GitOps ist ein moderner Ansatz zur Verwaltung von IT-Infrastrukturen, der die Verwendung von Git-Repositorys zur Speicherung und Verwaltung von Konfigurationen betont. Die Idee ist, alles, was mit Infrastruktur zu tun hat, als Code in einem Git-Repository zu speichern, einschließlich Konfigurationen, Richtlinien und sogar Anwendungscode. Dadurch können IT-Teams alle Aspekte ihrer Infrastruktur einfach verwalten und versionieren, was sie zuverlässiger, konsistenter und sicherer macht.\nArgoCD ist ein Open-Source-GitOps-Tool, das die Bereitstellung und Verwaltung von Kubernetes-Anwendungen erleichtert. ArgoCD kann verwendet werden, um die Bereitstellung von Anwendungen in Kubernetes-Clustern zu automatisieren, den Zustand der bereitgestellten Anwendungen zu überwachen und Änderungen bei Bedarf rückgängig zu machen.\nDer Workflow beginnt mit der Erstellung eines Git-Repositorys, das alle Konfigurationsdateien für die Kubernetes-Infrastruktur enthält. Dieses Git-Repository wird dann mit ArgoCD verbunden, das so konfiguriert ist, dass es auf Änderungen im Repository achtet. Wann immer es eine Änderung gibt, stellt ArgoCD automatisch die neue Version der Infrastruktur in der Zielumgebung bereit.\nEines der Hauptmerkmale von ArgoCD ist das Konzept der ApplicationSets. ApplicationSets sind eine Möglichkeit, mehrere ähnliche Anwendungen mit einer einzigen Konfiguration bereitzustellen. Dies ist besonders nützlich, wenn Anwendungen in mehreren Umgebungen oder Clustern bereitgestellt werden, wobei jede Umgebung oder jeder Cluster eine leicht unterschiedliche Konfiguration erfordert. Mit ApplicationSets können IT-Teams eine einzelne Konfiguration definieren, die für jede Umgebung oder jeden Cluster angepasst werden kann, was das Verwalten und Bereitstellen mehrerer ähnlicher Anwendungen erleichtert.\nArgoCD bietet auch mehrere andere Funktionen, die das Verwalten und Bereitstellen von Kubernetes-Anwendungen erleichtern, darunter:\nRollouts: ArgoCD bietet eine integrierte Rollout-Funktion, die es IT-Teams ermöglicht, die Bereitstellung neuer Versionen von Anwendungen zu verwalten und sicherzustellen, dass Updates schrittweise und sicher ausgerollt werden. Gesundheitsüberwachung: ArgoCD bietet Echtzeit-Überwachung der Gesundheit bereitgestellter Anwendungen, sodass IT-Teams Probleme schnell identifizieren und beheben können, sobald sie auftreten. Automatisierte Bereitstellung: ArgoCD kann automatisch neue Versionen von Anwendungen bereitzustellen, sobald sie im Git-Repository verfügbar sind, und stellt sicher, dass die Infrastruktur immer auf dem neuesten Stand ist. Insgesamt bietet ArgoCD ein leistungsstarkes und flexibles GitOps-Tool zur Verwaltung von Kubernetes-Anwendungen. Durch die Verwendung von ApplicationSets können IT-Teams mehrere ähnliche Anwendungen einfach bereitzustellen und verwalten, was das Verwalten großer und komplexer Infrastrukturen erleichtert. Mit seinen fortgeschrittenen Funktionen wie Rollouts und Gesundheitsüberwachung macht ArgoCD das Bereitstellen und Verwalten von Anwendungen mit Zuversicht einfach, in dem Wissen, dass sie immer auf dem neuesten Stand sind und reibungslos laufen.\nKustomize Overlays # Kustomize ist ein Tool für Kubernetes, mit dem Sie Ihre Kubernetes-Anwendungen durch die Verwendung deklarativer Konfigurationsdateien anpassen und konfigurieren können. Es wird für die Verwaltung komplexer Bereitstellungen verwendet, die eine Anpassung von Ressourcen in verschiedenen Umgebungen erfordern.\nKustomize verwendet eine einfache Verzeichnisstruktur, um Ihre Kubernetes-Ressourcen zu organisieren. Durch die Verwendung von Overlays und Patches kann es Änderungen an einer Basiskonfiguration vornehmen, ohne die Basis direkt zu ändern. Dadurch lässt sich die Wartung und Wiederverwendung gemeinsamer Konfigurationen vereinfachen, während weiterhin umgebungsspezifische Anpassungen möglich sind.\nEiner der Hauptvorteile von Kustomize ist, dass Sie Konfigurationsdateien auf skalierbare und wartbare Weise verwalten können. Anstatt mehrere Kopien derselben Konfigurationsdateien für verschiedene Umgebungen zu erstellen, ermöglicht es Kustomize, eine einzelne Basiskonfiguration zu warten und Overlays für jede Umgebung zu erstellen. Dadurch wird die Menge an Duplikaten reduziert und die Verwaltung von Konfigurationsdateien erleichtert, wenn sie sich im Laufe der Zeit ändern.\nKustomize-Overlay für Umgebungen\nKustomize bietet auch eine einfache Möglichkeit, umgebungsspezifische Variablen und Geheimnisse zu verwalten. Durch die Verwendung von Kubernetes ConfigMaps und Secrets können Sie umgebungsspezifische Werte erstellen, die zur Laufzeit zur Anpassung Ihrer Anwendung verwendet werden können.\nEin weiterer Vorteil von Kustomize ist, dass es in andere Kubernetes-Tools integriert ist, wie z.B. kubectl. Das bedeutet, dass Sie Kustomize zusammen mit anderen Tools verwenden können, um Ihre Kubernetes-Ressourcen zu verwalten.\nInsgesamt ist Kustomize ein leistungsstarkes Tool, das die Verwaltung von Kubernetes-Konfigurationen vereinfacht. Durch die Verwendung eines deklarativen Ansatzes für das Konfigurationsmanagement wird die Wartung und Skalierung Ihrer Kubernetes-Anwendungen erleichtert.\nApp of Apps # Das \u0026ldquo;App of Apps\u0026rdquo;-Muster ist ein Entwurfsmuster, das in Kubernetes verwendet wird, um komplexe Anwendungen und Umgebungen zu verwalten. Es ermöglicht Ihnen, mehrere verwandte Anwendungen oder Komponenten in eine einzige übergeordnete Anwendung zu organisieren, die als Ganzes verwaltet werden kann.\nDie grundlegende Idee hinter dem App-of-Apps-Muster besteht darin, eine Anwendung der obersten Ebene zu erstellen, die für die Bereitstellung und Verwaltung mehrerer untergeordneter Anwendungen oder \u0026ldquo;Sub-Anwendungen\u0026rdquo; verantwortlich ist. Jede Sub-Anwendung kann eine komplexe Anwendung mit eigener Bereitstellung, Diensten und anderen Kubernetes-Ressourcen sein.\nDurch die Verwendung des App-of-Apps-Musters können Sie Ihren gesamten Anwendungsstapel als einzelne Einheit verwalten. Dies erleichtert das Bereitstellen und Verwalten komplexer Anwendungen und Umgebungen, insbesondere in Fällen, in denen Sie viele voneinander abhängige Komponenten haben.\nApp-of-Apps-Muster\nGeheimnisverwaltung # HashiCorp Vault ist ein Tool zum Verwalten von Geheimnissen und sensiblen Daten in modernen IT-Umgebungen. Es bietet eine sichere und zentralisierte Möglichkeit, Geheimnisse wie Passwörter, Verschlüsselungsschlüssel, API-Schlüssel und andere sensible Daten zu speichern, zuzugreifen und zu verwalten.\nDas Hauptziel von Vault ist es, ein sicheres Speichersystem für Geheimnisse bereitzustellen und gleichzeitig fein abgestufte Zugriffskontrolle und Prüfungsfähigkeiten zu bieten. Vault verwendet verschiedene Verschlüsselungstechniken, wie Verschlüsselung im Ruhezustand und Verschlüsselung während der Übertragung, um die Sicherheit der verwalteten Daten zu gewährleisten. Es bietet auch eine Reihe von Zugriffskontrollfunktionen, wie z.B. rollenbasierte Zugriffskontrolle (RBAC), mit denen IT-Teams verwalten können, wer Zugriff auf welche Geheimnisse hat.\nVerwalten und Versionieren von Geheimnissen mit Vault-UI\nVault bietet eine einfache API zum Zugriff und zur Verwaltung von Geheimnissen, was die Integration in andere Tools und Anwendungen erleichtert. IT-Teams können die API von Vault verwenden, um Geheimnisse programmgesteuert abzurufen und zu verwalten, sodass sie sichere und automatisierte Workflows aufbauen können.\nEines der Hauptmerkmale von Vault ist seine Fähigkeit, dynamische Geheimnisse zu generieren. Mit dynamischen Geheimnissen kann Vault temporäre Anmeldedaten für verschiedene Systeme und Dienste generieren und verwalten, wie z.B. Datenbanken, Cloud-Anbieter und SSH. Dadurch können IT-Teams automatisch Anmeldedaten für diese Systeme und Dienste generieren und rotieren, was das Risiko von Diebstahl und Missbrauch von Anmeldedaten verringert.\nInsgesamt ist Vault ein leistungsstarkes und flexibles Tool zur Verwaltung von Geheimnissen in modernen IT-Umgebungen. Durch die Bereitstellung einer sicheren und zentralisierten Möglichkeit zur Verwaltung sensibler Daten ermöglicht Vault IT-Teams, sichere und automatisierte Workflows aufzubauen, während das Risiko von Datenverletzungen und Diebstahl von Anmeldedaten verringert wird.\nExterne Geheimnisse innerhalb von Kubernetes # Der External Secrets Operator ist ein Kubernetes-Operator, der es dem Kubernetes-Cluster ermöglicht, sicher auf Geheimnisse zuzugreifen, die außerhalb des Clusters gespeichert sind, wie z.B. in HashiCorp Vault oder AWS Secrets Manager. Er vereinfacht den Prozess der Geheimnisverwaltung, indem er eine deklarative Möglichkeit bietet, externe Geheimniszuordnungen zu definieren, und Geheimnisse automatisch zwischen dem externen Speicher und Kubernetes synchronisiert.\nDer External Secrets Operator verwendet die Kubernetes Custom Resource Definition (CRD), um externe Geheimnisse zu definieren. Diese CRDs beschreiben die Metadaten eines externen Geheimnisses, wie z.B. Name, Schlüssel-Wert-Paare und wo das Geheimnis gespeichert ist. Sobald diese CRDs erstellt sind, ruft der External Secrets Operator die Geheimnisse aus dem externen Speicher ab und speichert sie in einem Kubernetes-Geheimnis. Dadurch wird sichergestellt, dass die Geheimnisse für Kubernetes-Workloads zugänglich sind, ohne dass direkter Zugriff auf den externen Speicher erforderlich ist.\nManifest zur Definition von ExternalSecret\nEiner der Hauptvorteile des External Secrets Operators ist, dass er die Verwaltung von Geheimnissen vereinfacht. Er beseitigt die Notwendigkeit für Entwickler, Geheimnisse manuell zu verwalten, und bietet einen zentralen Ort zur Verwaltung und Prüfung von Geheimnissen. Zudem müssen Entwickler, da Geheimnisse extern verwaltet werden, keinen direkten Zugriff auf den Geheimnis-Speicher haben, was die Sicherheit verbessert und das Risiko von Geheimnis-Leaks verringert.\nEin weiterer Vorteil des External Secrets Operators ist, dass er sehr flexibel ist und leicht mit einer Vielzahl externer Geheimnis-Speicher integriert werden kann, einschließlich HashiCorp Vault, AWS Secrets Manager und Azure Key Vault. Dadurch können Kubernetes-Cluster sicher auf Geheimnisse zugreifen, die in verschiedenen Umgebungen gespeichert sind.\nInsgesamt ist der External Secrets Operator ein leistungsstarkes Tool, das die Verwaltung von Geheimnissen in Kubernetes-Clustern vereinfacht. Durch die Fähigkeit von Kubernetes-Clustern, sicher auf externe Geheimnisse zuzugreifen, erleichtert er Entwicklern den Aufbau sicherer und skalierbarer Anwendungen.\nMonitoring # Der Prometheus Operator ist ein Tool zum Verwalten und Bereitstellen von Prometheus-Instanz in Kubernetes-Clustern. Er vereinfacht den Prozess des Einrichtens, Konfigurierens und Skalierens von Prometheus und erleichtert das Überwachen von Kubernetes-Anwendungen und -Infrastrukturen.\nEine der wichtigsten Komponenten des Prometheus Operators ist kube-prometheus. Kube-prometheus ist ein Bündel von Kubernetes-Manifesten und Grafana-Dashboards, die verwendet werden, um Prometheus und Grafana in Kubernetes-Clustern bereitzustellen und zu konfigurieren. Es bietet eine Reihe von vorkonfigurierten Dashboards, die verwendet werden können, um Kubernetes-Komponenten wie Nodes, Pods und Services sowie die Gesundheit und Leistung von Kubernetes-Anwendungen zu überwachen.\nKube-prometheus umfasst Prometheus selbst, das für das Sammeln von Metrikdaten aus verschiedenen Quellen wie Kubernetes-API-Servern, Nodes und Anwendungen verantwortlich ist. Es umfasst auch Alertmanager, der verwendet wird, um Warnungen basierend auf den von Prometheus gesammelten Metriken zu verwalten und zu senden.\nZusätzlich umfasst kube-prometheus Grafana, das verwendet wird, um die von Prometheus gesammelten Metriken zu visualisieren und zu analysieren. Grafana bietet eine reichhaltige Reihe von Visualisierungsoptionen, einschließlich Diagrammen, Graphen und Dashboards, die Betreibern und Entwicklern helfen können, die Leistung und Gesundheit ihrer Kubernetes-Anwendungen und -Cluster zu verstehen.\nKube-prometheus umfasst auch eine Reihe von Kubernetes-Manifesten, die die verschiedenen Komponenten der Prometheus- und Grafana-Bereitstellungen definieren. Diese Manifeste werden verwendet, um die Bereitstellungen zu konfigurieren und anzupassen, um den Anforderungen des Kubernetes-Clusters gerecht zu werden.\nInsgesamt ist kube-prometheus ein leistungsstarkes Tool, das das Einrichten und Verwalten von Prometheus und Grafana in Kubernetes-Clustern erleichtert. Es bietet eine Reihe von vorkonfigurierten Dashboards und Tools, die verwendet werden können, um Kubernetes-Anwendungen und -Infrastrukturen zu überwachen, was es Betreibern und Entwicklern erleichtert, Probleme zu beheben und die Leistung ihrer Kubernetes-Bereitstellungen zu optimieren.\nLogs # Loki ist ein horizontal skalierbares, hochverfügbares, multi-mandantenfähiges Log-Aggregationssystem, das sehr kosteneffektiv entwickelt wurde. Es ermöglicht Benutzern, Log-Daten aus ihren Anwendungen und Diensten auf sehr effiziente und anpassbare Weise zu sammeln, zu speichern und abzufragen. Loki verwendet eine einzigartige Indizierungs- und Speicherstrategie, die es ermöglicht, schnell durch Logs zu suchen und diese abzurufen, was es zu einer idealen Lösung für die Verwaltung großer Mengen an Log-Daten in einer cloud-nativen Umgebung macht. Zudem integriert sich Loki nahtlos in andere beliebte Logging- und Überwachungstools wie Prometheus und Grafana.\nIch betreibe Loki seit einiger Zeit außerhalb von Kubernetes, eines meiner nächsten Projekte wird sein, herauszufinden, wie man loki-operator verwendet und in meine Kubernetes-Umgebungen integriert.\nFazit # Das Aufkommen von GitOps und Tools wie ArgoCD und Kustomize hat den Prozess der Verwaltung und Bereitstellung von Infrastruktur weiter vereinfacht und es Administratoren ermöglicht, komplexe Anwendungen und Umgebungen auf einfache und skalierbare Weise zu definieren und zu verwalten. Das App-of-Apps-Muster hat sich ebenfalls als leistungsstarke Methode zur Verwaltung komplexer Bereitstellungen herausgestellt und ermöglicht es Administratoren, gesamte Anwendungsstapel als einzelne Einheit zu definieren und zu verwalten.\nWährend all dieser Veränderungen ist die Rolle des IT-Administrators weiterhin von entscheidender Bedeutung. Während sich die Tools und Technologien weiterentwickelt haben, bleibt der Bedarf an qualifizierten Fachleuten, die komplexe IT-Umgebungen entwerfen, aufbauen und verwalten können, konstant. Wenn wir uns in eine zunehmend digitale und automatisierte Welt bewegen, wird die Rolle des IT-Administrators nur weiter an Bedeutung gewinnen.\nEs ist sehr willkommen, wenn Sie Ihre Erfahrungen mit diesen Themen teilen möchten. Schreiben Sie einfach einen Kommentar oder eine Nachricht an mich.\nKuhKI\nJa, einige Teile dieses Artikels wurden von KI geschrieben, ich bin Techniker und kein Schriftsteller. Und als praktischer IT-Admin/DevOps-Ingenieur mag ich es, Tools zu verwenden. ;-)\nLinks # Es gibt viele Tutorials und Quellen zu diesen Themen. Vielleicht können einige dieser Links helfen, ein besseres Verständnis zu entwickeln.\nWas ist GitOps?* Infrastructure as Code mit Terraform und GitLab | GitLab* ArgoCD Overview* External Secrets Operator* Kustomize* Argocd Cluster Bootstrapping* Openbao - Manage Secrets \u0026amp; Protect Sensitive Data* Prometheus Operator* Grafana Loki OSS | Log-Aggregationssystem* ","date":"12. Mai 2023","externalUrl":null,"permalink":"/posts/gitops-with-argocd/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2023-05-12.\nEinführung # Im Jahr 2007, als ich anfing, in der Technologiebranche zu arbeiten, verließen sich IT-Administratoren oft auf Shell-Skripte, um ihre Workflows zu automatisieren. Virtualisierung war noch nicht so verbreitet, und Tools wie PXE-Boot und Bootstrap-Dateien wurden verwendet, um die Installation von Betriebssystemen auf mehreren Servern gleichzeitig zu automatisieren. Die Netzwerkebene wurde sehr oft ohne Automatisierung betrieben. Später gewann auch KVM an Beliebtheit und ermöglichte Administratoren, virtuelle Maschinen zu erstellen und zu verwalten. Als die Infrastruktur komplexer wurde, wurden Konfigurationsmanagement-Tools wie Chef und Ansible beliebt, die es Administratoren ermöglichten, Infrastruktur als Code zu definieren und Konfigurationsänderungen schnell und einfach auf mehreren Servern anzuwenden.\n","title":"GitOps mit ArgoCD","type":"posts"},{"content":"","date":"19. Juni 2022","externalUrl":null,"permalink":"/tags/agriculture/","section":"Tags","summary":"","title":"Agriculture","type":"tags"},{"content":"","date":"19. Juni 2022","externalUrl":null,"permalink":"/tags/environment/","section":"Tags","summary":"","title":"Environment","type":"tags"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2022-06-19.\nDas ist unser Beitrag zur Umwelt. Links sieht man eine angelegte Hecke, in der Mitte Heu das wir erst Mitte Juni gemäht haben. Rechts ein Streifen Wiese der noch stehen geblieben ist, ein Komposthaufen, ein Gemüseacker\u0026hellip;\n","date":"19. Juni 2022","externalUrl":null,"permalink":"/posts/environmental-protection-instead-of-flying/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2022-06-19.\nDas ist unser Beitrag zur Umwelt. Links sieht man eine angelegte Hecke, in der Mitte Heu das wir erst Mitte Juni gemäht haben. Rechts ein Streifen Wiese der noch stehen geblieben ist, ein Komposthaufen, ein Gemüseacker…\n","title":"Keine Flugreise sondern Umweltschutz","type":"posts"},{"content":"","date":"19. Juni 2022","externalUrl":null,"permalink":"/categories/sustainability/","section":"Categories","summary":"","title":"Sustainability","type":"categories"},{"content":"","date":"19. Juni 2022","externalUrl":null,"permalink":"/tags/sustainability/","section":"Tags","summary":"","title":"Sustainability","type":"tags"},{"content":"Ursprünglich veröffentlicht auf LinkedIn am 2022-02-14.\nIn diesen Tagen lerne ich, eine Infrastruktur in GCP aufzubauen. In den letzten Jahren habe ich bereits mit Terraform gearbeitet und habe daher schon einige Erfahrungen damit gesammelt. Aber ich habe terraform_remote_state in der Vergangenheit nicht als Datenquelle verwendet.\nEin Freund hat mir gezeigt, wie man es verwendet, und es hat meine Art, Terraform-Pläne zu schreiben, vollständig verändert. Auch die Struktur meiner Pläne hat sich mit diesem Wissen geändert.\nABER seien Sie vorsichtig, es gibt wichtige Dinge zu beachten, es hat einige Sicherheitsnachteile. Lesen Sie wirklich die Dokumentation, bevor Sie beginnen, es zu verwenden!\n\u0026ldquo;Das Teilen von Daten mit den Ausgaben des Root-Moduls ist praktisch, aber es hat Nachteile. Obwohl terraform_remote_state nur Ausgabewerte freigibt, muss sein Benutzer Zugriff auf den gesamten Status-Snapshot haben, der oft einige sensible Informationen enthält.\u0026rdquo; Quelle\nSeien Sie vorsichtig mit Remote-State-Dateien in Objektspeichern, denn es ist nur ein kleines Konfigurationsproblem, und sensible Daten werden öffentlich\u0026hellip;\nDieses Wissen war ein Game-Changer. In der Vergangenheit habe ich Input- und Output-Variablen zusammen mit Modulen stark genutzt. Ich war auch daran gewöhnt, Terraform-Module zu schreiben, die Dienste durch das Auslösen von Chef oder Ansible konfigurieren. Mit dem Fokus auf Bereitstellungen auf GKE habe ich mich gefragt, ob ich überhaupt ein Konfigurationsmanagement benötige. Durch die Verwendung von Kubernetes als verwalteten Dienst gab es keine Notwendigkeit, ein Konfigurationsmanagement in den Stack aufzunehmen. Das Schreiben von Manifesten und das Vorhandensein einer Bereitstellungspipeline ist ein anderes Ziel.\nIn der Vergangenheit war ich es gewohnt, meine Terraform-Pläne nach Anwendung und Umgebungen zu strukturieren. Innerhalb eines Anwendungsplans hatte ich Datenbank, Anwendungsserver, Redis usw. Sicher, es konfiguriert auch alle Dinge, weil Ansible ebenfalls ausgelöst wird. Und es hatte seine Vor- und Nachteile.\nZurück zu Terraform. Mit diesen Voraussetzungen habe ich Pläne geschrieben und Datenquellen mit terraform_remote_state definiert, um die Datenquelle in Ressourcen zu verwenden. Auf diese Weise kann ich den Status eines anderen Plans verwenden. Irgendwie ergibt das für mich Sinn.\nIch habe gelernt, Terraform-Pläne auf eine andere Weise zu strukturieren. Ein Plan für die Projekterklärung, ein anderer für Datenbanken, der nächste für Kubernetes. Durch die Verwendung von terraform_remote_state ist es möglich, Variablen eines anderen Zustands abzurufen und sie in verschiedenen Plänen als Datenquelle zu verwenden. Auf diese Weise können die Datenbankpläne auf Werte des Projekt-Remote-Zustands zugreifen. Alle Datenbankinstanzen befinden sich in einer CloudSql-Terraform-Konfiguration, die gesamte GKE-Basisinfrastruktur im GKE-Plan, und beide greifen über terraform_remote_state als Datenquelle auf den Projektplan-Zustand zu.\nEs gibt verschiedene Möglichkeiten, Terraform-Projekte zu strukturieren, jede hat ihre Vor- und Nachteile.\nahead wie man HashiCorp Terraform Remote State nutzt DigitalOcean wie man ein Terraform-Projekt strukturiert Jack Roper wie man Terraform-Projekte strukturiert Wenn Sie einige Erfahrungen oder andere interessante Tutorials haben, wäre es wirklich schön, wenn Sie diese als Kommentar teilen könnten.\n","date":"14. Februar 2022","externalUrl":null,"permalink":"/posts/what-are-terraform-remote-states/","section":"Blog","summary":"Ursprünglich veröffentlicht auf LinkedIn am 2022-02-14.\nIn diesen Tagen lerne ich, eine Infrastruktur in GCP aufzubauen. In den letzten Jahren habe ich bereits mit Terraform gearbeitet und habe daher schon einige Erfahrungen damit gesammelt. Aber ich habe terraform_remote_state in der Vergangenheit nicht als Datenquelle verwendet.\n","title":"Was sind Terraform Remote States?","type":"posts"},{"content":"","date":"3. Januar 2022","externalUrl":null,"permalink":"/categories/career/","section":"Categories","summary":"","title":"Career","type":"categories"},{"content":"","date":"3. Januar 2022","externalUrl":null,"permalink":"/tags/career/","section":"Tags","summary":"","title":"Career","type":"tags"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2022-01-03.\nWarum ich diesen Satz von Bildern im Titel genommen habe?\nIn den letzten 20 Jahren hatte ich mehrere Jobs und habe viel in verschiedenen Berufen gelernt. So habe ich Erfahrungen als Landwirt, Baumpfleger, Elektriker, CTV-Techniker, Infrastruktur-Ingenieur und in Geospatial-Projekten gesammelt. Ich hätte nie gedacht, dass ich die Chance bekommen würde, die meisten dieser Erfahrungen in einem einzigen Job zu vereinen.\nAber ich wurde eines Besseren belehrt.\nLetztes Jahr im Herbst habe ich eine Nachricht von einem Unternehmen erhalten, weil sie einen DevOps-Ingenieur suchen, vielleicht kenne ich jemanden. Ich kenne R3-GIS seit Jahren. Meine Frau und ich arbeiten seit Jahren mit R3-Trees zusammen, bei dem Unternehmen meiner Frau Treetec. Das war der Beginn einer sehr interessanten Partnerschaft. Wir als Baumpfleger konnten viel von unserer Erfahrung einbringen und halfen, das System zu verbessern. Nach einer Weile sagte ich mir selbst, was für ein interessantes Jobangebot. Ich könnte meine Erfahrungen mit Bäumen und IT-Infrastruktur in einem Job vereinen. Und dann gibt es noch das lifeurbangreen-Projekt, das sich der Nachhaltigkeit widmet.\nIch habe die Arbeit mit meinen Freunden bei adidas runtastic wirklich gemocht. Aber ich musste die Gelegenheit ergreifen. Es ist wirklich schwer, Runtastic wieder zu verlassen, denn ich hatte dort eine großartige Zeit und habe so viel gelernt. Ich denke, das Infrastruktur-Team ist ein toller Trupp und ich bin stolz, dass ich ein Teil davon war. Eine Zeit mit viel Spaß, Erinnerungen, Partys und Arbeit. Danke an alle für diese Erinnerungen!\nIch freue mich darauf, meine Freunde bei den Bäumen wiederzutreffen, auch eine sehr interessante Gruppe von Fachleuten. Meine Arbeit wird mich wieder in einen Bereich bringen, in dem ich mit meiner Frau zusammenarbeiten kann, da sie auch Baumpflegerin ist und die Plattform, bei der ich in Zukunft dabei bin, nutzen wird. Also kann ich vielleicht in Bäumen hängen und Code auf einer Couch in der Nähe einer Kaffeemaschine schreiben. Die andere Zeit werden Sie mich beim Jagen im Wald finden. Nicht mein Beruf, aber jemand hat gesagt, ich brauche ein Hobby, bei dem ich meinen Laptop nicht mitnehmen kann.\nWarum ich über diese Dinge schreibe?\nWeil ich denke, es ist wichtig zu erkennen, dass jede Erfahrung wichtig ist und ihren Wert hat. Wer weiß, was deine Stärke und dein Interesse ist? Ich weiß nicht, wer es gesagt hat, aber ich mag das Zitat:\nIch habe nie einen Tag in meinem Leben gearbeitet. Ich habe immer das getan, was ich liebte, und hatte eine Leidenschaft dafür.\nUnd das ist irgendwie wahr. Wenn ein Job nur ein Job ist, um Geld zu verdienen, dann ist es nur ein Job, und für mich würde es mit der Zeit schwierig werden. Wir verbringen viel Zeit unserer Leben mit Arbeit und verbingen viel Zeit in unserem Job. Für mich selbst habe ich herausgefunden, dass es Sinn machen sollte, wo ich meine Mühe investiere. Für mich selbst und für die Zukunft meiner Kinder. Und die Verbesserung des Managements von Grünflächen ist eines der Projekte, bei denen ich definitiv sagen kann, dass dies eine Leidenschaft von mir ist.\n","date":"3. Januar 2022","externalUrl":null,"permalink":"/posts/lifelong-learning/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2022-01-03.\nWarum ich diesen Satz von Bildern im Titel genommen habe?\nIn den letzten 20 Jahren hatte ich mehrere Jobs und habe viel in verschiedenen Berufen gelernt. So habe ich Erfahrungen als Landwirt, Baumpfleger, Elektriker, CTV-Techniker, Infrastruktur-Ingenieur und in Geospatial-Projekten gesammelt. Ich hätte nie gedacht, dass ich die Chance bekommen würde, die meisten dieser Erfahrungen in einem einzigen Job zu vereinen.\n","title":"Der Kreis und lebenslanges Lernen","type":"posts"},{"content":"","date":"3. Januar 2022","externalUrl":null,"permalink":"/tags/learning/","section":"Tags","summary":"","title":"Learning","type":"tags"},{"content":"","date":"3. Januar 2022","externalUrl":null,"permalink":"/tags/professional-development/","section":"Tags","summary":"","title":"Professional Development","type":"tags"},{"content":"Ursprünglich veröffentlicht auf LinkedIn am 2021-08-10.\nIn den letzten Jahren hatte ich das Vergnügen, mich um mehrere interne IT-Tools als Ingenieur neben der Produktions-IT zu kümmern. Am Anfang ging es nur darum, Server einzurichten, Leuten Zugriff zu geben und sie am Laufen zu halten (irgendwie). Ich musste mich oft auf mehrere Dinge gleichzeitig konzentrieren. Und das war in Ordnung. Aber Jahre später wuchs das Unternehmen. Jemand musste die Verantwortung für Tools übernehmen, die von allen im Unternehmen genutzt werden. Ich wurde gebeten, dies für ein dediziertes Tool in der internen IT zu tun und möchte meine Erfahrungen etwas teilen.\nVerantwortung für ein internes IT-Tool übernehmen? # Wie langweilig kann das sein\u0026hellip; war mein erster Gedanke. Was bedeutet Verantwortung? dann der nächste Ich musste darüber nachdenken. Ich habe mit anderen Leuten gesprochen und erkannt, wie wichtig dieses Thema für ein Unternehmen sein kann. Also ist es vielleicht nicht das spektakulärste, was man tun kann, aber sehen wir uns an, was passiert, wenn man aus DevOps kommt und die Verantwortung für ein internes IT-Tool übernimmt.\nPlattform automatisieren # Ich war es gewohnt, Automatisierung für Konfigurationsmanagement und Bereitstellung zu haben. Ein halbes Jahr haben wir an Themen gearbeitet, um die Qualität unserer Bereitstellung zu steigern. Einige Upgrades, Migrationen und ein vollständiges Redesign des gesamten Stacks - wir haben unser Ziel erreicht. Jetzt können Rollout, Konfiguration und Updates über Terraform und AWX/Ansible durchgeführt werden. Wir haben auch HA-Funktionalität in allen Teilen des Stacks implementiert. Agiles Task-Management, Wiki und Source-Control-Management-Dienste wie in Produktionsumgebungen!\nDie auf Automatisierung basierende Bereitstellung hat auch ein anderes Thema verändert. Es ist weniger Aufwand, eine Testumgebung zu erstellen. Ein Beispiel: Wenn Sie testen möchten, wie Sie von einem internen Verzeichnis zu einem LDAP-Verzeichnis migrieren können, kann dies in Stunden statt in Tagen erledigt werden. Es ist auch sehr einfach, Leuten Zugriff zu geben, wenn sie etwas testen oder einfach nur lernen möchten, wie man die Tools verwendet.\nInvestieren Sie in Ihr Team # Wir haben auch in unsere Fähigkeiten investiert und Schulungen zu den internen IT-Tools durchgeführt. Dies hat mir geholfen, Dinge besser zu verstehen. Auf den ersten Blick ergeben viele Dinge keinen Sinn, aber wenn man damit arbeitet und versteht, warum es so gemacht wurde, können zumindest einige Dinge Sinn ergeben.\nAltes erben aufräumen # In jedem System gibt es eine Historie. Wichtig ist zu wissen, wann man sie behalten und wann man Dinge verbessern sollte, die zukünftige Verbesserungen blockieren. Ein Beispiel könnten unnötige Plugins sein, von denen niemand mehr weiß, warum sie installiert wurden. Mein Weg ist, sie zu deaktivieren, zu sehen, wer sie wirklich braucht, und zu versuchen zu verstehen, warum. Natürlich nur, wenn es nicht produktionsrelevant ist und mit etwas Abstimmung.\nJetzt hatten wir freie Zeit, um uns auf Verbesserungen für unsere Mitarbeiter zu konzentrieren.\nEine Vision erstellen # Wie sieht die ideale Situation für unsere Benutzer und für uns als Admins aus, um etwas anzufordern?\nAuf Benutzerseite ist es SELBSTBEDIENUNG! Auf der Infrastrukturseite ist es AUTOMATISIERUNG. Ihre Bedürfnisse kennen # Führen Sie eine kleine Umfrage durch und verschaffen Sie sich eine Vorstellung davon, was die Mitarbeiter mögen und was ihrer Meinung nach verbessert werden sollte. Beziehen Sie auch das enthaltene Service-Team mit ein. Es könnte sein, dass Benutzer glücklich sind, direkte Kommunikation zu nutzen, aber das Service-Team mit der Menge an direkten Nachrichten unglücklich ist. Tools wie Slack sind schön. Aber nicht dafür gemacht, sie als Help Center, Datensammlung, Automatisierung oder Inventarsystem zu nutzen.\nAnders denken und etwas Neues schaffen # Wir haben eine Lösung basierend auf unseren bestehenden Systemen gefunden, die Asset-Management- und Help-Center-Funktionen bietet. Nach einem POC war für uns klar, in diese Richtung zu gehen. Es half uns, die Anfragen zu kanalisieren und zu analysieren, was die Leute von uns benötigen.\nWir haben alle IT-Assets aus unserem alten System importiert. Als Basis für die nächsten Schritte haben wir uns darauf geeinigt, zuerst das HR-Informationsmanagement aufzubauen. Diese Informationen werden fast überall referenziert. IT-Assets und HR-Informationen in demselben Asset-Management mit Referenzen zu haben, gab uns viele Möglichkeiten. Die Automatisierung des Mitarbeiter-Onboardings und der Geräteunterstützung innerhalb von Workflows ist für beide Abteilungen schön. Genehmigungen können ohne mehrere E-Mails erledigt werden. Die Geräteanfragen werden von unserem Helpdesk-Team auf strukturierte und automatisierte Weise bearbeitet. Und Workflow-Automatisierung wird verwendet, um unser Inventar zu aktualisieren.\nSicher ist es noch nicht perfekt, aber wir haben bereits gesehen, dass dies der HR- und IT-Abteilung bereits viele Unterbrechungen und Zeit erspart hat. Und diese Zeit könnte für andere Themen genutzt werden.\nErstellen, was Sie benötigen # Ein weiteres Hauptmerkmal war ein Dienst, der innerhalb des IT-Teams erstellt wurde. Es handelt sich um eine Art Middleware mit Endpunkten zur Verarbeitung der Nutzlast eines Tickets oder von Asset-Informationen. Dadurch waren wir in der Lage, die Benutzer- und Gruppenverwaltung auf verschiedenen Plattformen zu automatisieren. Ausgelöst durch Workflow-Automatisierung im Task-Management oder Help Center, konnten Änderungen auf mehreren Plattformen ausgerollt werden.\nBeratung # Auch andere Abteilungen erkennen, was möglich sein könnte. Das ist der Punkt, an dem wir noch einen Schritt weiter gegangen sind und viel Beratung durchgeführt haben, um anderen Abteilungen bei ihren Bedürfnissen zu helfen.\nVerantwortung # Für mich ist es nicht das Tool, das dies möglich gemacht hat, es kann mit verschiedenen Tools durchgeführt werden. Der Grund, warum wir dies aufbauen konnten, ist die Verantwortung für das Tool. Und noch viel wichtiger ein Team mit einer offenen Denkweise, Ressourcen, Fähigkeiten und einer Vision.\nFür mich bedeutet Verantwortung:\nZusammen mit einem Team an einer Vision zu arbeiten und genug Ressourcen zu haben, um sie umzusetzen.\n","date":"10. August 2021","externalUrl":null,"permalink":"/posts/service-ownership/","section":"Blog","summary":"Ursprünglich veröffentlicht auf LinkedIn am 2021-08-10.\nIn den letzten Jahren hatte ich das Vergnügen, mich um mehrere interne IT-Tools als Ingenieur neben der Produktions-IT zu kümmern. Am Anfang ging es nur darum, Server einzurichten, Leuten Zugriff zu geben und sie am Laufen zu halten (irgendwie). Ich musste mich oft auf mehrere Dinge gleichzeitig konzentrieren. Und das war in Ordnung. Aber Jahre später wuchs das Unternehmen. Jemand musste die Verantwortung für Tools übernehmen, die von allen im Unternehmen genutzt werden. Ich wurde gebeten, dies für ein dediziertes Tool in der internen IT zu tun und möchte meine Erfahrungen etwas teilen.\n","title":"Service Ownership","type":"posts"},{"content":"","date":"29. Juli 2021","externalUrl":null,"permalink":"/tags/leadership/","section":"Tags","summary":"","title":"Leadership","type":"tags"},{"content":"","date":"29. Juli 2021","externalUrl":null,"permalink":"/tags/serviceownership/","section":"Tags","summary":"","title":"ServiceOwnership","type":"tags"},{"content":"Im letzten Jahr habe ich viel über Atlassian-Produkte gelernt, weil ich mich auf die Technologie konzentrieren und das Ziel hatte, die Erfahrung für unsere Benutzer zu verbessern. Aber ich möchte von Anfang an über meine Atlassian-Reise berichten.\n2013 trat ich einem Startup hier in Österreich bei. Und dies war mein erster Berührungspunkt mit Jira. Zu dieser Zeit haben wir es als Task-Management für SCRUM-basierte Workflows in der Entwicklung genutzt. Nach dem Zusammenführen mehrerer Jira-Projekte und Datenbankmigrationen zwischen Jira-Testinstanzen und Produktion (was für eine schöne Zeit) kannte ich mich auch etwas mit der Datenstruktur und dem Benutzermanagement aus.\n","date":"29. Juli 2021","externalUrl":null,"permalink":"/posts/from-atlassian-server-to-data-center/","section":"Blog","summary":"Im letzten Jahr habe ich viel über Atlassian-Produkte gelernt, weil ich mich auf die Technologie konzentrieren und das Ziel hatte, die Erfahrung für unsere Benutzer zu verbessern. Aber ich möchte von Anfang an über meine Atlassian-Reise berichten.\n","title":"Von Atlassian Server zu Data Center","type":"posts"},{"content":"","date":"2. Juli 2020","externalUrl":null,"permalink":"/tags/climate-change/","section":"Tags","summary":"","title":"Climate Change","type":"tags"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2020-07-02.\nIn den letzten Jahren habe ich gelernt, warum es wichtig ist, sein eigenes Essen anzubauen. Es geht um viel mehr als nur um das Essen, es ist eine Art Lebensstil und auch mein Beitrag gegen den Klimawandel. Aber warum? In meinem Fall konzentriere ich mich auf regenerative Landwirtschaft. Das geht noch über nachhaltige Landwirtschaft hinaus. Eines meiner Ziele ist es, mehr zurückzugeben als ich dem Boden nehme. Das klingt doch gut, oder? Aber ich kann Ihnen sagen, es ist wirklich schwierig. Es ist wirklich hart, den Humusgehalt im Boden zu erhöhen, wenn man gleichzeitig ernten will.\nDieses Jahr war wirklich interessant. Ich begann, den Mist von unseren Pferden zu humifizieren. Es ist mehr als nur Kompost herzustellen, es geht darum, Mikrobiologie für den Boden mit Verdauung zu schaffen.\nIn diesem Fall hat der Kompost etwa 55-65°C und ein spezieller Pilz zusammen mit anderen Mikroben zersetzt alle Fasern und Nährstoffe. Wenn die Energie nachlässt, werden die Bakterien mehr, übernehmen die Kontrolle und bauen sehr gute Erde auf. Nach dem gesamten Prozess ist es kein Dünger mehr, sondern eine sehr gute Mikrobiologie, die Sie nehmen können, um die Mikrobiologie auf den Feldern wieder aufzubauen. Eine Prise aktivierter Biokohle und die Chance, kohlenstoffhaltigen Boden aufzubauen, ist sehr hoch. Haben Sie sich jemals Gedanken darüber gemacht, wie viel Kohlenstoff im Boden gespeichert werden könnte und was Humus ist oder Terra Preta? Googeln Sie es einfach und auch dessen Auswirkungen auf den Klimawandel. Denken Sie danach über die industrielle Landwirtschaft nach\u0026hellip; aber das ist ein anderes Thema.\nZuerst pflügen wir das Feld, aber nicht mit einer schweren Maschine. Weil es uns gefällt, pflügen wir mit dem Pferd. Das ist wirklich schöne Arbeit, es ist leise, langsam und man kann den Boden wirklich spüren.\nIm Moment kann ich nicht mit dem Pferd pflanzen, aber mit einem kleinen Traktor ist es auch in Ordnung für mich, Kartoffeln und Gemüse zu pflanzen. Danach kümmern wir uns als ganze Familie darum. Unkrautbekämpfung ist wirklich wichtig. Und mit einigen Leuten um Sie herum macht es auch Spaß. In diesem Jahr konnten wir mit unserem Pferd zur Unkrautbekämpfung arbeiten, was die Dinge viel einfacher macht. Und wir haben viel Zeit gespart.\nUnd nach einiger Zeit sah es so aus.\nDas ist die beste Zeit im Jahr. Wir haben 7 verschiedene Kartoffelsorten gepflanzt. Daher sind die Erntezeiten unterschiedlich. Ich gehe immer mit meinen Kindern auf die Felder, wenn ich einige Kartoffeln ernte. Die Freude der Kinder ist die beste Belohnung, die ich für die ganze Arbeit bekommen kann, denn dann weiß ich, dass sie verstehen, warum wir unser eigenes Essen anbauen. In diesem Jahr war die erste Ernte für Pommes frites, die Kinder mochten sie.\nIch weiß, ich würde nicht gerne Lebensmittel anbauen und sie auf den Märkten verkaufen, aber ich würde das Wissen darüber gerne weitergeben. Also kam mir der Gedanke, hier in Oberösterreich eine Gemeinschaft zu gründen, in der wir pflanzen und ernten und austauschen können. Was halten Sie von einem solchen Projekt? Möchten Sie Teil eines solchen Projekts/einer solchen Gemeinschaft sein, oder gibt es bereits eine solche Gemeinschaft, von der ich noch nichts weiß?\nIch bin gespannt und freue mich auf Ihre Antworten.\n","date":"2. Juli 2020","externalUrl":null,"permalink":"/posts/we-plant-so-we-are/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2020-07-02.\nIn den letzten Jahren habe ich gelernt, warum es wichtig ist, sein eigenes Essen anzubauen. Es geht um viel mehr als nur um das Essen, es ist eine Art Lebensstil und auch mein Beitrag gegen den Klimawandel. Aber warum? In meinem Fall konzentriere ich mich auf regenerative Landwirtschaft. Das geht noch über nachhaltige Landwirtschaft hinaus. Eines meiner Ziele ist es, mehr zurückzugeben als ich dem Boden nehme. Das klingt doch gut, oder? Aber ich kann Ihnen sagen, es ist wirklich schwierig. Es ist wirklich hart, den Humusgehalt im Boden zu erhöhen, wenn man gleichzeitig ernten will.\n","title":"We plant, so we are!","type":"posts"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2020-05-27.\nDiese Tage war ich im Urlaub und bereite mich auf meinen neuen Job vor, den ich bald beginnen werde. Ein Freund von mir bat mich um etwas Hilfe mit seinen Mapserver-RPM-Paketen, weil er eine spezielle Kombination aus Mapserver 7.4.4, PHP 7.4 und PostgreSQL 12 auf CentOS 7 und CentOS 8 benötigte.\nPacker, Terraform, KVM Ansible-Lösung: # Da ich in der Vergangenheit mit einigen HashiCorp-Produkten gearbeitet habe, habe ich versucht, etwas Lokales auf meinem Arbeitsplatzrechner auf Basis von KVM zusammen mit Packer, Terraform-CLI, Terraform-Libvirt und Ansible zu erstellen. Schön, damit zu spielen und Mapserver kennenzulernen und zu kompilieren. Aber das ist viel zu kompliziert.\nPodman-Container-Lösung: # Ja, ich werde alt, aber ich mag es, neues Zeug auszuprobieren. Also war ich daran interessiert, Podman auf meiner Fedora-Workstation zu verwenden. Wow, sehr einfach zu bedienen, einfach die Dockerfile erstellen und es hat funktioniert!\nViel einfacher, aber um die Build-Umgebung vorzubereiten, konnte ich keinen CentOS7/8-Basiscontainer verwenden. Es gibt viele Dinge, die im Container als Build-Anforderungen installiert werden müssen. Ich würde nicht gerne jedes Mal, wenn ich einen Mapserver-Build auslöse, das Image neu erstellen. Um dies zu lösen, habe ich die Build-Container mit Podman auf meiner lokalen Fedora-Workstation erstellt.\nDann habe ich dieses Container-Image für den Mapserver-Build verwendet. So wird nur der Build selbst ausgelöst, wenn der Container startet.\nSchön, aber nicht perfekt.\nBuild-Pipelines: # GitLab # Also machen wir ein bisschen GitOps. Implementieren wir dies in einer GitLab CI/CD-Pipeline. Jason Tevnan, ein Freund von mir, hat viel mit Pipelines gearbeitet, also habe ich ihn um einige Hinweise gebeten. Ich wusste, dass es in GitLab Build-Pipeline-Funktionen gibt. Und es gibt auch ein integriertes Container-Registry. Ich habe die vorbereiteten Container in das Container-Registry des GitLab-Projekts hochgeladen. Dann ist es nicht mehr so aufwendig, die CI-Pipeline zu erstellen. Nur eine Spec-Datei und etwas gitlab-ci.yml-Magie, und ich konnte die Artefakte herunterladen.\nstages: - source - build - test - deploy .build_template: \u0026amp;rpm_build_definition stage: build script: - mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} - spectool -g -C rpmbuild/SOURCES \u0026#34;`pwd`/redhat/mapserver-7.4.4.spec\u0026#34; - rpmbuild -D \u0026#34;_topdir `pwd`/rpmbuild\u0026#34; --clean --target x86_64 -ba \u0026#34;`pwd`/redhat/mapserver-7.4.4.spec\u0026#34; artifacts: expire_in: 1 day paths: - rpmbuild/SRPMS/mapserver-*.rpm - rpmbuild/RPMS/x86_64/mapserver-*.x86_64.rpm - rpmbuild/RPMS/x86_64/php-*.x86_64.rpm centos7-build: \u0026lt;\u0026lt;: *rpm_build_definition tags: - linux image: \u0026#34;registry.gitlab.com/treenerd/mapserver:centos7\u0026#34; centos8-build: \u0026lt;\u0026lt;: *rpm_build_definition tags: - linux image: \u0026#34;registry.gitlab.com/treenerd/mapserver:centos8\u0026#34; Es ist noch nicht fertig und es gibt noch viel zu verbessern, aber es ist ein Startpunkt.\nBitbucket # Ich wurde gefragt, ob ich das auch mit Bitbucket machen kann. Ich habe nicht so viel mit Bitbucket gearbeitet, aber die Dokumentation hat mir gesagt, dass es möglich sein sollte. Das Einzige, was mir gefehlt hat, war das Build-in Container-Registry wie bei GitLab. Aber hey, lassen Sie uns das Container-Registry meines GitLab-Projekts verwenden\u0026hellip; Nach etwas bitbucket-pipeline.yml-Magie wurden die RPM-Pakete auch dort erstellt.\nimage: registry.gitlab.com/treenerd/mapserver:centos7 pipelines: default: - step: script: - echo \u0026#34;Everything is awesome!\u0026#34; - pwd - ls -lah - whoami - mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} - spectool -g -C \u0026#34;`pwd`/rpmbuild/SOURCES\u0026#34; \u0026#34;`pwd`/redhat/php-mapserver-7.4.4.spec\u0026#34; - rpmbuild -D \u0026#34;_topdir `pwd`/rpmbuild\u0026#34; --clean --target x86_64 -ba \u0026#34;`pwd`/redhat/php-mapserver-7.4.4.spec\u0026#34; artifacts: - rpmbuild/SRPMS/mapserver-*.rpm - rpmbuild/RPMS/x86_64/mapserver-*.x86_64.rpm - rpmbuild/RPMS/x86_64/php-*.x86_64.rpm Zusammenfassung # Seien Sie immer offen für neue Lösungen. Es gibt einen Grund, warum sie existieren. Probieren Sie sie aus, nutzen Sie sie und fragen Sie Leute, Freunde, was sie von dem halten, was Sie erstellen.\nDanke für Ihre Hilfe und auch für Ihre Fragen!\n","date":"27. Mai 2020","externalUrl":null,"permalink":"/posts/use-build-pipelines/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2020-05-27.\nDiese Tage war ich im Urlaub und bereite mich auf meinen neuen Job vor, den ich bald beginnen werde. Ein Freund von mir bat mich um etwas Hilfe mit seinen Mapserver-RPM-Paketen, weil er eine spezielle Kombination aus Mapserver 7.4.4, PHP 7.4 und PostgreSQL 12 auf CentOS 7 und CentOS 8 benötigte.\n","title":"Build-Pipelines verwenden","type":"posts"},{"content":"Ursprünglich veröffentlicht auf LinkedIn am 2020-05-01.\nIch mag es wirklich, Dinge zu automatisieren. Also automatisiere ich auch die Erstellung und Bereitstellung von Basis-Images für eine Data-Center-Umgebung.\nEs gibt einige Tools, die dies lösen. In meinem Fall bevorzugte ich packer.io.\nWarum? Weil es Open Source ist, viele verschiedene Technologien unterstützt, auf verschiedenen Plattformen läuft und so weiter und so fort. Und es ist einfach und leichtgewichtig.\nMit Packer können Sie Images in Cloud-Umgebungen erstellen und bereitstellen, aber auch lokal mit KVM, VirtualBox oder sogar Hyper-V.\n[gerhardsulzberger@localhost packerkvmcentospgsql]$ cat CentOS-7.7-server-x86_64-kvm.json { \u0026#34;builders\u0026#34;: [ { \u0026#34;type\u0026#34;: \u0026#34;qemu\u0026#34;, \u0026#34;iso_url\u0026#34;: \u0026#34;http://ftp.tugraz.at/mirror/centos/7.7.1908/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso\u0026#34;, \u0026#34;iso_checksum\u0026#34;: \u0026#34;9a2c47d97b9975452f7d582264e9fc16d108ed8252ac6816239a3b58cef5c53d\u0026#34;, \u0026#34;iso_checksum_type\u0026#34;: \u0026#34;sha256\u0026#34;, \u0026#34;output_directory\u0026#34;: \u0026#34;output_centos_tdhtest\u0026#34;, \u0026#34;shutdown_command\u0026#34;: \u0026#34;echo \u0026#39;packer\u0026#39; | sudo -S shutdown -P now\u0026#34;, \u0026#34;disk_size\u0026#34;: \u0026#34;5000M\u0026#34;, \u0026#34;format\u0026#34;: \u0026#34;qcow2\u0026#34;, \u0026#34;accelerator\u0026#34;: \u0026#34;kvm\u0026#34;, \u0026#34;http_directory\u0026#34;: \u0026#34;http\u0026#34;, \u0026#34;ssh_username\u0026#34;: \u0026#34;root\u0026#34;, \u0026#34;ssh_password\u0026#34;: \u0026#34;changeme\u0026#34;, \u0026#34;ssh_timeout\u0026#34;: \u0026#34;20m\u0026#34;, \u0026#34;vm_name\u0026#34;: \u0026#34;tdhtest\u0026#34;, \u0026#34;net_device\u0026#34;: \u0026#34;virtio-net\u0026#34;, \u0026#34;disk_interface\u0026#34;: \u0026#34;virtio\u0026#34;, \u0026#34;boot_wait\u0026#34;: \u0026#34;10s\u0026#34;, \u0026#34;boot_command\u0026#34;: [ \u0026#34;\u0026lt;tab\u0026gt; text ks=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ks.cfg\u0026lt;enter\u0026gt;\u0026lt;wait\u0026gt;\u0026#34; ] } ] } Im Fall von Red Hat-Images können Sie die Kickstart-Datei mit dem Red Hat Kickstart-Generator erstellen.\nDas Image kann nun als Basis-Image verwendet werden. Aber Packer kann noch mehr für Sie tun. Es kann auch das Basis-Image mit verschiedenen Tools wie Ansible, Chef oder sogar PowerShell bereitstellen.\nFür weitere Informationen werfen Sie einfach einen Blick auf die Dokumentation von packer.io.\nViel Spaß\n","date":"1. Mai 2020","externalUrl":null,"permalink":"/posts/use-the-power-of-automation/","section":"Blog","summary":"Ursprünglich veröffentlicht auf LinkedIn am 2020-05-01.\nIch mag es wirklich, Dinge zu automatisieren. Also automatisiere ich auch die Erstellung und Bereitstellung von Basis-Images für eine Data-Center-Umgebung.\nEs gibt einige Tools, die dies lösen. In meinem Fall bevorzugte ich packer.io.\n","title":"Nutzen Sie die Kraft der Automatisierung","type":"posts"},{"content":"Ursprünglich veröffentlicht auf LinkedIn am 2020-03-30.\nDa ich mich mit Fibre Channel beschäftige, muss ich mich auch mit neuen Tools auseinandersetzen. Heute hatten wir zum Beispiel einige Probleme auf einem Linux-Server mit Fibre Channel HBA-Einrichtung. In einem Glasfasernetz sucht man nach RX/TX-Leistungsmetriken, die ich auch von den SAN-Switches erhalte. Aber um Probleme zu erkennen, ist es gut, die RX/TX-Leistung auch von der Host-Seite zu sehen. Der Linux-Support im Unternehmen hat mir gesagt, dass sie keine Metriken im System finden können. Also habe ich versucht, mehr Wissen über dieses Thema zu sammeln.\nIch habe überprüft, welche Art von Adaptern wir haben:\n# lspci | grep -i \u0026#34;fibre\u0026#34; 08:00.0 Fibre Channel: QLogic Corp. ISP8324-based 16Gb Fibre Channel to PCI Express Adapter (rev 02) 08:00.1 Fibre Channel: QLogic Corp. ISP8324-based 16Gb Fibre Channel to PCI Express Adapter (rev 02) Und ich habe auch überprüft, was ich in \u0026lsquo;cat /sys/class/fc_host/host*/\u0026rsquo; finden kann, aber ich konnte keine Transceiver-Metriken finden. Also hatte der Linux-Mitarbeiter recht.\nVielleicht habe ich einfach am falschen Ort gesucht\u0026hellip;\nAlso habe ich die QLogic-Support-Seiten überprüft. Und hier geht es! Ich habe eine Suche nach nützlichen Tools für meinen HBA durchgeführt und QConvergeConsole CLI für Linux (x64) gefunden.\nhttps://driverdownloads.qlogic.com/QLogicDriverDownloads_UI/Defaultnewsearch.aspx\nAuf einem Testserver installiert, habe ich versucht, die gewünschten Daten zu erhalten:\n# qaucli -pr fc -dm all gen -------------------------------------------------------------------------------- HBA Instance 0: HPAJ764A Port 1 WWPN ****** PortID 16-13-00 Link: Online -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Media Information -------------------------------------------------------------------------------- Vendor: HP-A Type: 800-M6-SN-I Part Number: AJ718A Speed: 200 MBytes/Sec 400 MBytes/Sec 800 MBytes/Sec Revision: A Serial Number: ********** QLogic SFP Installed: No -------------------------------------------------------------------------------- Temperature Voltage Tx Bias Tx Power Rx Power (C) (V) (mA) (mW) (mW) -------------- ------- ------- ------- ------- Value 46.29 3.32 6.39 0.5534 0.5265 Status Normal Normal Normal Normal Normal High Alarm 100.00 3.80 10.50 0.8000 6.5500 High Warning 95.00 3.63 10.50 0.7000 1.1000 Low Warning -10.00 2.97 2.00 0.1000 0.0490 Low Alarm -15.00 2.80 2.00 0.0500 0.0000 -------------------------------------------------------------------------------- HBA Instance 1: HPAJ764A Port 2 WWPN ****** PortID 7A-13-00 Link: Online -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Media Information -------------------------------------------------------------------------------- Vendor: HP-A Type: 800-M6-SN-I Part Number: AJ718A Speed: 200 MBytes/Sec 400 MBytes/Sec 800 MBytes/Sec Revision: A Serial Number: ********** QLogic SFP Installed: No -------------------------------------------------------------------------------- Temperature Voltage Tx Bias Tx Power Rx Power (C) (V) (mA) (mW) (mW) -------------- ------- ------- ------- ------- Value 44.30 3.32 6.58 0.5532 0.5553 Status Normal Normal Normal Normal Normal High Alarm 100.00 3.80 10.50 0.8000 6.5500 High Warning 95.00 3.63 10.50 0.7000 1.1000 Low Warning -10.00 2.97 2.00 0.1000 0.0490 Low Alarm -15.00 2.80 2.00 0.0500 0.0000 Low Alarm -15.00 2.80 2.00 0.0500 0.0000 So habe ich die Daten erhalten, die ich wollte, und dabei etwas gelernt.\nDenken Sie anders, geben Sie nicht auf und versuchen Sie verschiedene Lösungen, um Probleme zu lösen.\n","date":"30. März 2020","externalUrl":null,"permalink":"/posts/get-fibre-channel-hba-adapter-metrics/","section":"Blog","summary":"Ursprünglich veröffentlicht auf LinkedIn am 2020-03-30.\nDa ich mich mit Fibre Channel beschäftige, muss ich mich auch mit neuen Tools auseinandersetzen. Heute hatten wir zum Beispiel einige Probleme auf einem Linux-Server mit Fibre Channel HBA-Einrichtung. In einem Glasfasernetz sucht man nach RX/TX-Leistungsmetriken, die ich auch von den SAN-Switches erhalte. Aber um Probleme zu erkennen, ist es gut, die RX/TX-Leistung auch von der Host-Seite zu sehen. Der Linux-Support im Unternehmen hat mir gesagt, dass sie keine Metriken im System finden können. Also habe ich versucht, mehr Wissen über dieses Thema zu sammeln.\n","title":"Fibre Channel HBA-Adapter-Metriken abrufen","type":"posts"},{"content":"","date":"30. März 2020","externalUrl":null,"permalink":"/tags/fibrechannel/","section":"Tags","summary":"","title":"FibreChannel","type":"tags"},{"content":"","date":"30. März 2020","externalUrl":null,"permalink":"/categories/infrastructure/","section":"Categories","summary":"","title":"Infrastructure","type":"categories"},{"content":"","date":"30. März 2020","externalUrl":null,"permalink":"/tags/storage/","section":"Tags","summary":"","title":"Storage","type":"tags"},{"content":"","date":"19. Januar 2020","externalUrl":null,"permalink":"/tags/ci/cd/","section":"Tags","summary":"","title":"CI/CD","type":"tags"},{"content":"","date":"19. Januar 2020","externalUrl":null,"permalink":"/tags/gitlab/","section":"Tags","summary":"","title":"GitLab","type":"tags"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2020-01-19.\nIn meinem letzten Artikel habe ich über die Powershell-DevOps-Pipeline geschrieben und dass ich gitlab-ce für dieses Projekt verwenden möchte. Heute habe ich also einige Dinge kombiniert, die mich in meinem Homelab interessieren. Starten wir gitlab-ce mit podman in einer CentOS 8.1 VM.\n[administrator@podnode01 ~]$ sudo podman run --detach --hostname gitlab.test.vm --env GITLAB_OMNIBUS_CONFIG=\u0026#34;external_url \u0026#39;http://gitlab.test.vm/\u0026#39;\u0026#34; --publish 443:443 --publish 80:80 --publish 222:22 --name gitlab gitlab/gitlab-ce:latest Hier geht es los. Ich erstelle ein Git-Projekt auf meinem lokalen Rechner und habe das Repository an die gitlab-ce-Instanz gepusht.\nStarten wir auch einen Windows 2019-Server im Labor und führen einen Powershell-Shell gitlab-runner darauf aus.\nOkay, also habe ich den gitlab-ce-Server, den Powershell gitlab-runner mit dem Label \u0026ldquo;windows\u0026rdquo; und ein Git-Repository. Wie kann man diese kombinieren? Fügen Sie einfach eine .gitlab-ci.yml-Datei innerhalb des Git-Repositorys hinzu.\ncat .gitlab-ci.yml pages: stage: deploy tags: - windows script: # Führe PowerShell-Befehl aus - powershell -Command \u0026#34;Get-Date\u0026#34; # Führe PowerShell-Skript aus # - powershell -File copyFiles.ps1 Okay, machen wir einen Commit und einen Push, um zu sehen, ob dies einen \u0026#34;Build\u0026#34; auslöst. Ich weiß, dass \u0026#34;Get-Date\u0026#34; kein Befehl ist, der einen Build auslöst, aber anstelle von \u0026#34;Get-Date\u0026#34; können wir in Zukunft andere PowerShell-Skripte wie Pester verwenden. ![GitLab CI/CD-Pipeline führt PowerShell-Skript erfolgreich aus](/linkedin/powershell-gitlab/powershell-pipeline.png) Das war nur ein POC. Aber es hat mich weniger als 1 Stunde gekostet, die Maschinen zu erstellen und diese zu kombinieren. Ich denke, das ist eine einfache Möglichkeit, eine Build-Pipeline auch für PowerShell-Module und -Skripte zu erstellen. Der nächste Schritt wird sein, die Pester-Tests innerhalb der Build-Pipeline auszuführen. ","date":"19. Januar 2020","externalUrl":null,"permalink":"/posts/powershell-gitlab/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2020-01-19.\nIn meinem letzten Artikel habe ich über die Powershell-DevOps-Pipeline geschrieben und dass ich gitlab-ce für dieses Projekt verwenden möchte. Heute habe ich also einige Dinge kombiniert, die mich in meinem Homelab interessieren. Starten wir gitlab-ce mit podman in einer CentOS 8.1 VM.\n","title":"Powershell + GitLab","type":"posts"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2020-01-06.\nHallo zusammen, wie einige von euch wissen, habe ich im letzten Jahr eine neue Herausforderung angenommen und arbeite jetzt in der IT-Abteilung eines großen Gesundheitsunternehmens. In den letzten Jahren habe ich viel Erfahrung gesammelt, wie man Automatisierungstools in einer homogenen Linux-Infrastruktur einsetzt. In meinem neuen Job sind die Dinge anders.\nIn der Vergangenheit habe ich nie daran gedacht, Powershell zu verwenden, weil es unter Linux tonnenweise wirklich gute Tools zur Konfiguration und Bereitstellung gibt. Wie Terraform, Chef, Ansible und so weiter\u0026hellip;\nAlso habe ich jetzt einen Windows-Arbeitsplatzrechner \u0026hellip; was ein Albtraum für mich ist. In den letzten 15 Jahren habe ich keinen Windows-PC mehr angefasst. Ja, ich unterstütze auch nur Linux-PCs beim \u0026ldquo;Familien-Support-Abo\u0026rdquo;. Also ist ein Windows-PC für mich wirklich eine Herausforderung.\nAlso, was habe ich zuerst gemacht? Ja, das BIOS gehackt und WSL installiert, was für einige Ansible-Skripting für das Rollout der neuen Performance-Überwachungstools innerhalb unserer Abteilung schön ist (ich mag Prometheus und Grafana wirklich), aber das ist eine andere Geschichte. Aber es ist WSL1 und es ist keine Windows-Tooling. Also hatte ich das \u0026ldquo;Glück\u0026rdquo;, einige Powershell-Schulungen zu erhalten, was schön ist. Aber es ist wie mit einem Führerschein: Man denkt, man ist ein 18-jähriger Formel1-Fahrer, aber in Wirklichkeit habe ich gerade erst gelernt, wie man das Auto fährt.\nDas Gute ist, dass ich Erfahrung mit anderen Automatisierungstools habe, also habe ich mich umgeschaut, was es da gibt. Und ich bin über einige Tools gestolpert und versuche jetzt, einen Entwicklungs-Stack für Powershell innerhalb unserer Abteilung aufzubauen. Warum? Wir haben einige Speichersysteme, bei denen einige APIs verfügbar sind, aber niemand hat damit gearbeitet. Und es gibt keine native Powershell-CLI von diesem Anbieter. Und die gesamte Automatisierung sollte innerhalb des Unternehmens mit Powershell durchgeführt werden. Das ist der Grund.\nDevOps-Umgebung # Also habe ich ein bisschen recherchiert, was es gibt, und bin über diese Projekte gestolpert.\nVorlagen können mit Plaster erstellt werden Für die Versionierung bevorzugte ich die Verwendung von GitLab-CE Testen: Wie ich herausgefunden habe, ist Pester das gängige Tool dafür Die Dokumentationsstruktur kann innerhalb des Git-Repositorys mit Plaster erstellt werden Eine schöne Benutzeroberfläche für meine Kollegen ist Visual Studio Code Build-Automatisierung mit psake Bereitstellung? Das ist ein offener Punkt im Moment. Es gibt Optionen wie ein privater NuGet-Server, aber ich bin mir noch nicht sicher, ob das das ist, was ich haben möchte. Auf der anderen Seite gibt es GitLab, das ein sehr leistungsstarkes Tool ist, wenn es um CI/CD geht. Plaster # Für mich ist es wirklich wichtig, einige Struktur in den Modulen zu bekommen, die von unserem Team erstellt werden. Es ist ein gewisser Aufwand, ein Tool zu verwenden und Vorlagen zu erstellen, aber am Ende lohnt es sich. Denn die Leute gewöhnen sich daran, die Strukturen zu verwenden, die wir innerhalb des Teams definieren. Und wenn sie mit Vorlagen erstellt werden, verbessern sich die Vorlagen im Laufe der Zeit. Auch wenn neue Teammitglieder hinzukommen, ist es einfacher zu verstehen, was vor sich geht. Es ist auch einfacher, die Module in kleinere Module aufzuteilen, während überall die gleichen Strukturen vorhanden sind. Ich denke, der einfachste Weg, Plaster zu verstehen, ist dieses Video auf YouTube.\nArbeiten mit Plaster (ein PowerShell-Scaffolding-Modul)\nVielleicht finde ich etwas Zeit, um mehr Artikel zu diesem Thema zu schreiben. Aber lasst uns das sehen. Wenn jemand einige Hinweise für mich hat, sind Sie willkommen, einen Kommentar zu hinterlassen.\n","date":"6. Januar 2020","externalUrl":null,"permalink":"/posts/powershell-for-me-as-psdummy/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2020-01-06.\nHallo zusammen, wie einige von euch wissen, habe ich im letzten Jahr eine neue Herausforderung angenommen und arbeite jetzt in der IT-Abteilung eines großen Gesundheitsunternehmens. In den letzten Jahren habe ich viel Erfahrung gesammelt, wie man Automatisierungstools in einer homogenen Linux-Infrastruktur einsetzt. In meinem neuen Job sind die Dinge anders.\n","title":"Powershell für mich als PSDummy","type":"posts"},{"content":" Ursprünglich veröffentlicht auf LinkedIn am 2019-09-24.\nIch habe meinen Urgroßvater nie kennengelernt, aber ich hatte dieses Bild von ihm. Und von Zeit zu Zeit habe ich mich gefragt, wie es wohl wäre, ein Feld wie in alten Zeiten zu bestellen.\nDie Sache ist, dass der gesamte Bauernhof seit Jahren verpachtet war. Aber ich hatte immer ein Auge auf die Felder und beobachtete, wie sich der Zustand immer weiter verschlechterte. Gleichzeitig entdeckte ich etwas Besonderes auf meinem Bauernhof. Es war ein altes Pferdegeschirr. Wow, könnte das das alte Pferdegeschirr aus dem Bild sein, das ich hatte?\nNach einiger Reinigung würde ich sagen, es könnte sein. Ich begann, über ein Pferd auf dem Bauernhof nachzudenken. Aber wer kann Wissen aus den alten Tagen vermitteln? Ich fragte einige ältere Leute in der Umgebung, alle konnten sich erinnern, aber niemand konnte es lehren. Zum Glück gab es eine kleine Gemeinschaft in Österreich, die versucht, einige Kenntnisse zu bewahren und in die moderne Zeit zu bringen. Diese Gemeinschaft initiierte einen zertifizierten Ausbildungslehrgang, und ich schloss mich mit meiner Frau an. Es war ein zweijähriger Ausbildungslehrgang, ja, Sie haben richtig gelesen: ZWEI JAHRE für eine Ausbildung.\nWarum 2 Jahre? Nun, es gibt Jahreszeiten über das Jahr. Man muss Gras mähen, pflügen, eggen, bestellen und so weiter. Und ein sehr wichtiger Teil der Ausbildung bestand darin, es wirklich zu tun. Nicht nur in der Theorie. Es ist also nicht wie ein PowerShell-Training, bei dem man die Dinge, die man braucht, in nur 5 Tagen in einer gut vorbereiteten virtuellen Umgebung lernen kann. Es ist draußen in der Natur, mit den eigenen Pferden. Zuerst muss man lernen, wie man seinem Pferd beibringt, und am Ende weiß man, dass man viel über sich selbst gelernt hat.\nWir haben Wissen darüber erhalten, wie man das eigene Pferd auf moderne Weise ausbildet. Das Tierwohl ist sehr wichtig! Inzwischen ist unser Pferd wie ein Familienmitglied. Aber es ist auch wichtig, die Arbeit zu erledigen. Es ist ein sehr langer Prozess, ein gut ausgebildetes Arbeitspferd zu ersetzen.\nUnd in den letzten 2 Jahren haben wir gelernt, wie man Dinge über eine ganze Saison hinweg nur mit Arbeitspferden erledigt.\nWir haben auch Pflanzen auf dem Feld angebaut, nur damit die Felder grün sind. Einige Jahre haben wir im Frühjahr mehr als 2 Hektar Blütenpflanzen bestellt. Wir konnten eine erstaunliche Zunahme von Insekten und viel bessere Bodenbedingungen beobachten.\nIch würde nicht sagen, dass die alten Tage besser waren. Aber es war erstaunlich, eine Idee davon zu bekommen, wie mein Urgroßvater mit seinem Team gearbeitet hat.\n2 Jahre in modernen Technologien, wie in der IT, können lang sein. Manchmal wird eine Technologie in zwei Jahren durch etwas Besseres ersetzt. Aber wenn man auf einem Feld mit seinem Team arbeitet, ist es völlig anders. Man verlangsamt sich, arbeitet mit Geräten, die hunderte Jahre alt sein könnten, aber sie funktionieren immer noch. Also habe ich mich zu Hause wirklich verlangsamt.\nIch habe auch meine Arbeitsstunden bei meiner Arbeit reduziert und arbeite nur noch 4 Tage die Woche statt 5. Aber ich erledige die Arbeit. Auch in meinem neuen Job arbeite ich 4 Tage die Woche. Und auch hier erledige ich die Dinge in 4 Tagen. Jetzt fällt es mir leichter, mich während der Arbeitszeit auf Themen zu konzentrieren. Ich denke, das liegt auch daran, dass ich nach der Arbeit auf dem Bauernhof wirklich entspannt bin. Sehr oft kommt mir eine Idee, die mit meiner Arbeit zu tun hat, wenn ich mit meinen Pferden auf dem Bauernhof arbeite. Ich erkenne auch, dass von Zeit zu Zeit Kreativität und Innovation genau hier entstehen, wenn ich im \u0026ldquo;Langsam-Modus\u0026rdquo; bin.\nNachschrift;\n:-D Wir haben die Prüfung geschafft. Jetzt sind wir \u0026ldquo;Zertifizierte Arbeitstierführer\u0026rdquo;, was so etwas wie ein \u0026ldquo;zertifizierter Arbeitspferdeführer\u0026rdquo; ist, einige Grundlagen, um jeden Tag etwas Neues zu lernen \u0026hellip;.\nMal sehen, was die Zukunft bringt\u0026hellip; mindestens wachsen einige Ideen\n","date":"24. September 2019","externalUrl":null,"permalink":"/posts/get-slow-more-efficient/","section":"Blog","summary":" Ursprünglich veröffentlicht auf LinkedIn am 2019-09-24.\nIch habe meinen Urgroßvater nie kennengelernt, aber ich hatte dieses Bild von ihm. Und von Zeit zu Zeit habe ich mich gefragt, wie es wohl wäre, ein Feld wie in alten Zeiten zu bestellen.\n","title":"Langsamer werden, um effizienter zu sein","type":"posts"},{"content":"","date":"24. September 2019","externalUrl":null,"permalink":"/tags/work-life-balance/","section":"Tags","summary":"","title":"Work-Life-Balance","type":"tags"},{"content":"Ich biete professionelle Dienstleistungen in verschiedenen technischen Bereichen an. Meine Expertise kombiniert IT-Infrastruktur mit praktischem Wissen aus Elektrotechnik und Klimatechnik.\nMeine Dienstleistungsbereiche # Platform \u0026amp; SRE\nAufbau und Betrieb skalierbarer IT-Infrastrukturen\nElektrotechnik\nElektrische Installationen und Wartung für IT-Umgebungen\nKlimaanlagen\nKlimatechnik für Serverräume\nTrainings\nSchulungen und Workshops für technische Teams\n","externalUrl":null,"permalink":"/services/","section":"Dienstleistungen","summary":"Ich biete professionelle Dienstleistungen in verschiedenen technischen Bereichen an. Meine Expertise kombiniert IT-Infrastruktur mit praktischem Wissen aus Elektrotechnik und Klimatechnik.\nMeine Dienstleistungsbereiche # Platform \u0026 SRE\n","title":"Dienstleistungen","type":"services"},{"content":" Elektrotechnik für IT-Infrastrukturen # Elektrische Sicherheit und Zuverlässigkeit sind die Grundlage jeder IT-Infrastruktur. Ich biete umfassende Dienstleistungen im Bereich Elektrotechnik spezialisiert auf IT-Umgebungen.\nMeine Leistungen # Stromversorgung # Planung und Installation von Stromversorgungssystemen USV-Systeme (Unterbrechungsfreie Stromversorgung) Notstromversorgung und Redundanzkonzepte Stromverteilung und Kabelmanagement Elektrische Sicherheit # Sicherheitsüberprüfungen und Wartung FI-Schalter-Tests und Schutzmaßnahmen Erdung und Blitzschutz Elektrische Messungen und Zertifizierungen IT-spezifische Lösungen # Stromversorgung für Serverracks und Netzwerkschränke PDU-Installation (Power Distribution Units) Stromüberwachung und -management Energiesparende Lösungen für Rechenzentren Kontaktieren Sie mich für eine Beratung.\n","externalUrl":null,"permalink":"/services/elektrotechnik/","section":"Dienstleistungen","summary":"Elektrotechnik für IT-Infrastrukturen # Elektrische Sicherheit und Zuverlässigkeit sind die Grundlage jeder IT-Infrastruktur. Ich biete umfassende Dienstleistungen im Bereich Elektrotechnik spezialisiert auf IT-Umgebungen.\n","title":"Elektrotechnik für IT-Infrastrukturen","type":"services"},{"content":" Offenlegung gemäß § 25 Mediengesetz # Medieninhaber: Gerhard Sulzberger\nFirmensitz: Vöcklamarkt, Oberösterreich\nWKO Eintrag\nKontaktdaten # E-mail: info@sete.at\nUID-Nummer # UID-Nr: ATU79973003\nInhalt, Copyright # Wir möchten ausdrücklich betonen, dass wir keinerlei Einfluss auf die Gestaltung und die Inhalte der gelinkten Seiten einschließlich aller Unterseiten haben. Wir distanzieren uns daher ausdrücklich von allen Inhalten aller gelinkten Seiten einschließlich aller Unterseiten auf dieser Homepage und machen uns deren Inhalte nicht zu Eigen. Sollten Inhalte auf dieser Homepage ein allgemein gültiges Copyright verletzen, so ist dies nicht unsere Absicht und wir würden ein demensprechendes Vergehen sofort korrigieren.\nAlle Rechte vorbehalten. Alle Inhalte auf der Website \u0026lt;www.sete.at\u0026gt; unterliegen dem Schutz des Urheberrechts und anderer Schutzgesetze. Der Rechtsschutz gilt auch gegenüber Datenbanken und ähnlichen Einrichtungen. Die Inhalte sind nur für den bestimmungsgemäßen Abruf im Internet frei nutzbar. Die Inhalte dieser Websites dürfen außerhalb der Grenzen des Urheberrechts ohne schriftliche Genehmigung der Frima Gerhard Sulzberger - SETE nicht in irgendeiner Form vervielfältigt, verbreitet, verändert oder Dritten zugänglich gemacht werden.\nDatenschutz # Verarbeitungstätigkeit von Personenbezogenen Daten im Unternehmen:\nBei Übergabe von Visitenkarten und Kontaktdaten (Vorname, Name, Adressen, E-mails, Telefonnummern etc. ) stimmen Sie überein das wir diese Daten verarbeiten dürfen im Zuge der Anfrage bis Beendigung des Auftrages. Wir legen Visitenkarten zuerst in unserer Gelbörse ab und später in unserer Rundablage. Die Entsorgung der Visitenkarten erfolgt in unterschiedlichen Abständen beim lokalen ASZ. Wir haben uns überzeugt das die Wertstoffcontainer in regelmäßigen Abständen beim ASZ abgeholt werden und der Verwertung zugeführt werden. Wenn Sie uns telefonisch kontaktieren, werden wir Gesprächsnotizen machen und da wir moderne Telefone benutzen wird die Telefonnummer und der Zeitpunkt des Gespräches aufgezeichnet. Wir haben unsere Telefone so konfiguriert das diese Daten nicht in die Herstellercloud hochgeladen werden, aber kontrollieren kann man das wohl nicht so einfach. Diese Gesprächsnotizen werden auch chronologisch in der Rundablage abgelegt und schlußendlich in einem ASZ entsorgt.\nAlle Kundendaten in unserer Kundendatanbank und die Kundendatenbank, wurde mit dem Stichtag der Einführung der DSGVO gelöscht. Dokumente und E-mails die den gesetzlichen Aufbewarungsfristen unterliegen, werden so lange aufbewahrt wie gesetzlich nötig. Danach werden die Daten gelöscht oder geschredert und entsorgt.\nDa wir keine Cookies nutzen auf dieser Seite, gibt es auch keinen nervigen Cookie Werbe Tracking BlaBla Banner.\n","externalUrl":null,"permalink":"/imprint/","section":"SETE - Platform Engineering \u0026 Nachhaltigkeit","summary":"Offenlegung gemäß § 25 Mediengesetz # Medieninhaber: Gerhard Sulzberger\nFirmensitz: Vöcklamarkt, Oberösterreich\nWKO Eintrag\nKontaktdaten # E-mail: info@sete.at\n","title":"Impressum","type":"page"},{"content":" Klimaanlagen und Kühlung für IT-Infrastrukturen # Effektive Klimatisierung ist entscheidend für die Zuverlässigkeit und Lebensdauer von IT-Equipment. Ich biete umfassende Dienstleistungen im Bereich Klimatechnik und Kühlung.\nMeine Leistungen # Planung und Beratung # Auswahl und Dimensionierung von Klimaanlagen Energieeffiziente Kühlungslösungen Redundanzkonzepte für hohe Verfügbarkeit Einbindung der Sensoren in das IT System Monitoring Installation und Inbetriebnahme # Installation von Präzisionsklimaanlagen Kaltgang-/Warmgang-Kontainment Luftführung und Strömungsoptimierung Wartung und Service # Regelmäßige Wartung und Inspektion Filterwechsel und Reinigung Störungsbehebung und Reparaturen Leistungsoptimierung bestehender Anlagen Überwachung und Steuerung # Temperatur- und Feuchtigkeitsüberwachung Energieverbrauchsanalyse Automatisierte Steuerungssysteme Fernüberwachung und Alerting Typische Anwendungsbereiche # Serverräume: Kompakte Lösungen für kleine IT-Umgebungen Netzwerkschränke: Gezielte Kühlung für hohe Wärmedichten Technikräume: Komplettlösungen für IT- und Telefonietechnik Zertifizierung # Das Unternehmen ist Zertifiziert für bestimmte Tätigkeiten im Zusammenhang mit Arbeiten an Kälte- und Klimaanlagen sowie Wärmepumpen nach § 4 Abs. 1 Fluorierte Treibhausgase-Gesetz 2009 in Verbindung mit der Verordnung des Bundesministers für Nachhaltigkeit und Tourismus über Qualifizierungs- und Zertifizierungsmaßnahmen im Zusammenhang mit Kälte- und Klimaanlagen sowie Wärmepumpen, BGBl. II Nr. 2/2011.\nEs wurde bestätigt, dass die in der Verordnung BGBl. II Nr. 2/2011 festgelegten Voraussetzungen nachgewiesen sind. Sie ist daher – unbeschadet der Erfüllung der nach der Gewerbeordnung 1994, BGBl. Nr. 194/1994, in der jeweils geltenden Fassung, in Verbindung mit den einschlägigen Regelungen für einen Zugang zur selbständigen Gewerbeausübung erforderlichen Voraussetzungen – berechtigt, folgende Tätigkeiten der Kategorie II durchzuführen:\nDichtheitskontrollen bei fluorierte Treibhausgase enthaltenden Kälte- und Klimaanlagen sowie Wärmepumpen mit Füllmengen ab 5 t CO2-Äquivalent bzw. bei hermetisch geschlossenen Systemen ab 10 t CO2-Äquivalent, wenn nicht in den Kältemittelkreislauf eingegriffen wird Rückgewinnung, Installation, Instandhaltung und Wartung (inklusive Dichtheitskontrollen) bei Anlagen mit einer Füllmenge unter 3 kg bzw. bei hermetisch geschlossenen Systemen unter 6 kg im Sinne der Verordnung (EU) Nr. 2015/2067 Kontaktieren Sie mich für eine individuelle Beratung.\n","externalUrl":null,"permalink":"/services/klimaanlagen/","section":"Dienstleistungen","summary":"Klimaanlagen und Kühlung für IT-Infrastrukturen # Effektive Klimatisierung ist entscheidend für die Zuverlässigkeit und Lebensdauer von IT-Equipment. Ich biete umfassende Dienstleistungen im Bereich Klimatechnik und Kühlung.\n","title":"Klimaanlagen und Kühlung","type":"services"},{"content":" Platform \u0026amp; Site Reliability Engineering # Als Platform \u0026amp; Site Reliability Engineer spezialisiere ich mich auf den Aufbau und Betrieb von zuverlässigen, skalierbaren IT-Infrastrukturen.\nMeine Leistungen # Infrastruktur-Design # Planung und Umsetzung von Kubernetes-Clustern GitOps-basierte Bereitstellung mit ArgoCD Infrastructure-as-Code mit Terraform Automatisierung von Bereitstellungsprozessen Betrieb und Wartung # Überwachung und Alerting mit Prometheus und Grafana Logging-Lösungen mit Loki Incident Response und Post-Mortem Analysen Kapazitätsplanung und Skalierung Sicherheit und Compliance # Implementierung von Sicherheitsbest Practices Geheimnisverwaltung mit External Secrets Operator Netzwerk- und Firewall-Konfiguration Compliance-Überprüfungen Technologien # Container Orchestration: Kubernetes, OpenShift CI/CD: GitLab CI/CD, GitHub Actions Infrastructure as Code: Terraform, Ansible Monitoring: Prometheus, Grafana, Alertmanager Logging: Grafana Loki, Promtail GitOps: ArgoCD, Flux Zielgruppen # Kleine und mittelgroße Rechenzentren IT-Abteilungen mit begrenzten Ressourcen Unternehmen mit wachsender IT-Infrastruktur Teams, die ihre DevOps-Praktiken verbessern möchten Kontaktieren Sie mich für eine individuelle Beratung.\n","externalUrl":null,"permalink":"/services/platform-sre/","section":"Dienstleistungen","summary":"Platform \u0026 Site Reliability Engineering # Als Platform \u0026 Site Reliability Engineer spezialisiere ich mich auf den Aufbau und Betrieb von zuverlässigen, skalierbaren IT-Infrastrukturen.\n","title":"Platform \u0026 Site Reliability Engineering","type":"services"},{"content":" Platform Engineering \u0026amp; Site Reliability für kleine Rechenzentren # Mein Schwerpunkt liegt im Aufbau und Betrieb von IT-Infrastrukturen für kleine bis mittelgroße Rechenzentren. Als Platform \u0026amp; Site Reliability Engineer spezialisiere ich mich auf die Automatisierung, Überwachung und Optimierung von Systemen, um maximale Zuverlässigkeit und Effizienz zu gewährleisten.\nMit meiner Expertise in den Bereichen:\nPlattform-Design \u0026amp; -Betrieb - Skalierbare Infrastrukturen mit Kubernetes, GitOps und Terraform Elektrotechnik für Rechenzentren - Stromversorgung, USV-Systeme und elektrische Sicherheit Klimatechnik \u0026amp; Kühlung - Wartung und Optimierung von Klimaanlagen und Kühlsystemen für IT-Umgebungen Speicherlösungen - Fibre Channel, Block Storage Arrays und moderne Speichertechnologien Ich habe umfangreiche Erfahrung in der Migration und dem Betrieb von IT-Infrastrukturen, sowohl On-Premises als auch in Cloud-Umgebungen.\nMein Hintergrund: Vielfältige Expertise # Meine technische Expertise wird durch einen ungewöhnlichen Werdegang ergänzt: Neben meiner IT-Laufbahn verfüge ich über Zertifikate als Elektriker sowie in der Wartung von Klimaanlagen. Diese Kombination ermöglicht es mir, technische Infrastruktur nicht nur aus der Software-Perspektive, sondern auch mit tiefem Verständnis für die Hardware und die physische Umgebung zu betrachten.\nDarüber hinaus bringe ich Erfahrungen aus anderen Fachbereichen mit:\nZertifizierter Baumpfleger - mit langjähriger Erfahrung in der Baumpflege Landwirtschaft - Praktische Erfahrung im Umgang mit Maschinen und nachhaltigen Prozessen Schießausbilder - Fachwissen in Sicherheit und präzisen Abläufen Diese vielfältigen Erfahrungen haben mir ein einzigartiges Verständnis für komplexe Systeme, Präzision und die Bedeutung von Zuverlässigkeit in allen Arbeitsbereichen gegeben.\nLebenslanges Lernen # Kontinuierliche Weiterentwicklung ist für mich nicht nur ein berufliches Prinzip, sondern eine Lebensphilosophie. Jede Erfahrung, jeder Fachbereich trägt dazu bei, Probleme aus neuen Perspektiven zu betrachten und innovative Lösungen zu finden.\n","externalUrl":null,"permalink":"/about/","section":"SETE - Platform Engineering \u0026 Nachhaltigkeit","summary":"Platform Engineering \u0026 Site Reliability für kleine Rechenzentren # Mein Schwerpunkt liegt im Aufbau und Betrieb von IT-Infrastrukturen für kleine bis mittelgroße Rechenzentren. Als Platform \u0026 Site Reliability Engineer spezialisiere ich mich auf die Automatisierung, Überwachung und Optimierung von Systemen, um maximale Zuverlässigkeit und Effizienz zu gewährleisten.\n","title":"Profil","type":"page"},{"content":" Technische Schulungen und Workshops # Wissen ist der Schlüssel zum Erfolg. Ich biete technische Schulungen und Workshops an, um Ihr Team mit den notwendigen Fähigkeiten auszustatten.\nSchulungsangebot # IT-Infrastruktur und DevOps # Kubernetes Grundlagen und Fortgeschrittene: Container-Orchestrierung GitOps mit ArgoCD: Automatisierte Bereitstellung Infrastructure as Code mit Terraform: Infrastruktur als Code CI/CD mit GitLab: Automatisierte Build- und Deployment-Pipelines Monitoring mit Prometheus und Grafana: Überwachung und Alerting Logging mit Loki: Zentrale Logverwaltung Elektrotechnik # Grundlagen der Elektrotechnik für IT-Mitarbeiter: Basiswissen für den sicheren Umgang USV-Systeme: Auswahl, Installation und Wartung Stromverteilung in Rechenzentren: Planung und Betrieb Elektrische Sicherheit: Normen und Vorschriften Klimatechnik # Grundlagen der Klimatechnik: Physikalische Prinzipien Klimatisierung von Rechenzentren: Spezielle Anforderungen Energieeffiziente Kühlung: Optimierung des Energieverbrauchs Wartung von Klimaanlagen: Regelmäßige Pflege und Instandhaltung Schulungsformate # Präsenzschulungen: Vor Ort bei Ihnen im Unternehmen Workshops: Intensive 1-2 Tages Workshops Kontaktieren Sie mich für ein individuelles Schulungsangebot.\n","externalUrl":null,"permalink":"/services/trainings/","section":"Dienstleistungen","summary":"Technische Schulungen und Workshops # Wissen ist der Schlüssel zum Erfolg. Ich biete technische Schulungen und Workshops an, um Ihr Team mit den notwendigen Fähigkeiten auszustatten.\n","title":"Technische Schulungen und Workshops","type":"services"}]