Pod reloader für secret changer

12 Apr 2022 Lesezeit: ~1 Minute

Wer seinen Arbeitsalltag in einer Flut von Abhängigkeiten verbringt die aus fremden Hängen fließen, dann kommt es schon mal vor, dass man auf eine Änderung reagieren und etwas neustarten muss.

Wenn ihr wisst, wovon ich rede, dann arbeitet ihr vermutlich auch mit Kubernetes und habt die Aufgabe Pods über ein geändertes secret zu informieren.

Da ich auf solche Aufgaben keine Lust habe, suche ich mir eine weitere Abhängigkeit die das für mich übernimmt - ich bin ja modern.

In meinem Fall geht es darum, dass ich in einem KeyVault ein Secret ändern will und das daraus gemountete Kubernetes Secret aktualisiert wird und eben die Pods, die dieses Secret nutzen bitte automatisch neu starten - klar, oder?

Hier kommt der reloader zum Einsatz:

Einfach installiert mit Hilfe von

kubectl apply -f https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml

kann ich dann ein Deployment einfach mit einer weiteren Annotation ausstatten und der Drops ist gelutscht: Das damit verbundene Deployment wird dann gemäß der Konfiguration mit einem roleout restart angepasst.


Kurztipp: Anti DDOS für den Server mit Bash

21 Sep 2021 Lesezeit: ~1 Minute

Ihr betreibt einen Server im Internet und wollt euch zusätzlich zu den Provider-Diensten gegen DDOS Schützen?

Dann habe ich ein schickes kleines Dingen für euch. Ich habe es bei meiner eigenen Suche gefunden, weil ich ein paar Server bei Hetzner zusätzlich absichern wollte.

Sicher ist sicher.

Dieses Skript ist natürlich vor einer Benutzung anzupassen. Aber es bietet eine gute Grundlage für alle weiteren Schritte bei der Einrichtung des Servers.

Quellen und Links:


Dateisystem überwachen mit inotifywait

20 Sep 2021 Lesezeit: 2 Minuten

Manchmal kommt es vor, dass man eine Datei oder einen Ordner auf seinem Server beobachten möchte, um im Fale eines Zugriffs, oder einer Aktion darauf reagieren zu können.

In meinem Fall geht es darum, dass die von mir gesetzte SGID ignoriert wird, weil ein Prozess explizit die Benutzer- und Gruppenzugehörigkeit beim schreiben einer Datei angibt.

Daher habe ich mir einen Service gebaut, welcher die Zugriffe auf einen Ordner überwacht und entsprechende Anpassungen (chmod und chown) ausführt, wenn es notwendig ist.

Dazu nutze ich inotifywait.

Zuerst erstelle ich ein Skript, das diese aufgabe für sich erledigen kann. Es kann auch händisch ausgeführt werden, damit man ordentlich testen kann.

nano /usr/bin/lookup_folder.sh

#!/bin/bash
while true; do

inotifywait -e modify,create,move -r -m --format '%w%f /PATH/TO/FOLDER |
   while read -r fname
   do
       chmod -v -R 775 "$fname"
       chown -v -R $USER:$GROUP "$fname"
   done
done

Anschließend - wenn alle Tests erfolgreich sind - wird ein systemd service erstellt, der eben dieses langlaufende Skript "startet"

nano /lib/systemd/system/lookup_folder.service

[Unit]
Description=Change file permissions

[Service]
ExecStart=/usr/bin/lookup_folder.sh

[Install]
WantedBy=multi-user.target

Anschließend muss man das alles noch enablen

systemctl daemon-reload
systemctl enable lookup-folder-service.service 
systemctl start lookup-folder-service.service 

und wenn man alles richtig gemacht hat, dann sieht man die Ausgabe der Befehle im Journal

journalctl -f -u lookup-folder-service.service