Administration & Automation
Systeme reproduzierbar verwalten und wiederkehrende Aufgaben sicher automatisieren.
Automatisierung auswählen
Automatisiert werden wiederholbare, klar beschreibbare Abläufe. Vorher werden Eingaben, gewünschter Zustand, Fehlerfälle, Protokollierung und Rückweg festgelegt.
PowerShell und Bash
Variablen, Bedingungen, Schleifen, Funktionen und Pipelines bilden die Grundlage. Befehle liefern strukturierte Daten oder Text; Eingaben müssen validiert und Ausnahmen behandelt werden.
Idempotenz
Ein idempotenter Ablauf kann mehrfach ausgeführt werden, ohne bei bereits erreichtem Ziel unerwünschte Änderungen zu erzeugen.
Lege die Gruppe nur an, wenn sie noch nicht existiert.
Rechte und Geheimnisse
Skripte laufen mit den minimal notwendigen Rechten. Kennwörter, API-Schlüssel und Zertifikatsschlüssel gehören in geschützte Secret-Speicher und nicht in Quellcode oder Protokolle.
Zeitsteuerung
Cron, systemd-Timer und Aufgabenplanung starten Jobs geplant. Sperren verhindern parallele Läufe; Exitcodes, Laufzeit und Ergebnis werden überwacht.
Konfigurationsmanagement
Werkzeuge wie Ansible beschreiben einen Zielzustand und wenden Änderungen reproduzierbar an. Inventar, Rollen, Variablen und Versionsverwaltung unterstützen nachvollziehbare Umgebungen.
Sicher testen
Automatisierung wird zuerst mit Testdaten oder in einer Testumgebung geprüft. Dry-Run, Backout-Plan, aussagekräftige Logs und begrenzte Stapelgrößen reduzieren Auswirkungen.
Praxis: Zustände statt Befehlsfolgen
Ein Skript zur Gruppenanlage prüft zuerst, ob die Gruppe existiert. Fehlende Eingaben oder unerreichbare Dienste werden als Fehler behandelt, statt einen Erfolg zu melden. Ein zweiter Lauf soll keine Duplikate erzeugen. Prüfe Erstlauf, Wiederholung, ungültige Eingabe und fehlende Rechte.
Soll: Gruppe vorhanden Ist prüfen → bei Bedarf anlegen → Ergebnis prüfen → protokollieren
Praxis: Bash sicher lesen
Quote Variablen, wenn ein Wert als einzelnes Argument gedacht ist: "$datei". Exitcodes und Fehlerzweige müssen ausdrücklich geprüft werden. set -e ist kein vollständiges Fehlerbehandlungskonzept und besitzt Ausnahmen. Arbeite mit begrenzten Zielpfaden und vermeide ungeprüfte rekursive Dateioperationen. Eine Vorschau erklärt geplante Änderungen, ohne sie auszuführen.
if test -f "$datei"; then printf "%s\n" "Datei vorhanden" else printf "%s\n" "Datei fehlt" >&2 exit 1 fi
Praxis: PowerShell sicher prüfen
PowerShell-Cmdlets können nicht terminierende Fehler liefern. -ErrorAction Stop kann sie für try/catch in terminierende Fehler umwandeln. -WhatIf wirkt nur bei Befehlen, die dies unterstützen, und garantiert keine umfassende Simulation eines ganzen Skripts. Verwende strukturierte Objekte statt formatierten Bildschirmtext als Datengrundlage.
try {
Get-Item -LiteralPath $pfad -ErrorAction Stop
} catch {
Write-Error "Datei konnte nicht gelesen werden."
}