Site icon bintorosoft.com

19.8 Mini-Projekt: Netzwerk-Backup automatisieren

A proficient network engineer ensuring seamless performance while attending to complex systems in a modern server room

Ein Mini-Projekt zur Automatisierung von Netzwerk-Backups ist einer der sinnvollsten und praxisnächsten Einstiege in die Netzwerkautomatisierung. Gerade im CCNA- und frühen Automation-Umfeld verbindet dieses Thema mehrere zentrale Fähigkeiten in einer überschaubaren Aufgabe: Geräte per SSH erreichen, Informationen strukturiert sammeln, Dateien sauber speichern, mit Inventardaten arbeiten und erste Fehler systematisch behandeln. Gleichzeitig ist der fachliche Nutzen sofort nachvollziehbar. Netzwerkkonfigurationen ändern sich mit jedem Standard-Change, jedem neuen Interface, jeder Routing-Anpassung und jeder kleinen Managementänderung. Ohne aktuelle Sicherungen wird Fehlersuche schwieriger, Rollback unsicherer und Dokumentation schnell unvollständig. Genau deshalb ist ein automatisiertes Backup kein theoretisches Übungsbeispiel, sondern ein echter Grundbaustein professioneller Netzwerkarbeit. Im Lab eignet sich dieses Mini-Projekt besonders gut, weil es mit überschaubarem Aufwand umgesetzt werden kann, einen klaren praktischen Mehrwert liefert und den Übergang von einzelnen Python-Skripten zu kleinen, nützlichen Automatisierungsprozessen sehr gut sichtbar macht.

Warum Netzwerk-Backups automatisiert werden sollten

Manuelle Sicherungen sind fehleranfällig und unregelmäßig

In kleinen Lab-Umgebungen oder auch in realen Netzen werden Konfigurationssicherungen anfangs oft manuell durchgeführt. Ein Engineer verbindet sich auf das Gerät, gibt einen Show-Befehl ein und kopiert die Ausgabe in eine Datei. Das funktioniert für einzelne Geräte, wird aber schnell unzuverlässig, sobald mehrere Systeme oder regelmäßige Sicherungen erforderlich sind.

Automatisierung löst diese Probleme nicht nur durch Geschwindigkeit, sondern vor allem durch Wiederholbarkeit und Konsistenz.

Backups sind Grundlage für viele weitere Aufgaben

Ein automatisiertes Backup ist nicht nur eine Sicherheitsmaßnahme. Es schafft auch die Grundlage für viele weitere betriebliche Prozesse.

Gerade deshalb ist ein Backup-Skript im Lab ein idealer erster Schritt in Richtung echter Network Automation.

Ziel des Mini-Projekts klar definieren

Was das Projekt leisten soll

Für ein sinnvolles Mini-Projekt sollte der Umfang bewusst begrenzt, aber praktisch relevant sein. Ziel ist nicht, sofort ein hochverfügbares Enterprise-Backup-System zu bauen, sondern einen funktionierenden, nachvollziehbaren und sauberen Prozess im Lab umzusetzen.

Mit diesem Umfang bleibt das Projekt überschaubar, deckt aber bereits viele wichtige Automation-Grundlagen ab.

Welche Daten gesichert werden sollen

Für das erste Mini-Projekt ist es sinnvoll, mit wenigen, aber wertvollen Konfigurationsdaten zu beginnen. Der Klassiker ist die laufende Konfiguration, also die Running-Config. Ergänzend können systemnahe Informationen sinnvoll sein.

Für einen ersten Backup-Prozess reicht show running-config meist völlig aus. Erweiterungen können später ergänzt werden.

Die Lab-Umgebung vorbereiten

Geräte mit SSH-Zugriff bereitstellen

Bevor ein Backup automatisiert werden kann, müssen die Zielgeräte sauber vorbereitet sein. Im Lab heißt das vor allem: Management-IP, SSH-Zugang und erreichbarer Pfad vom Automation-Host zu allen Geräten.

Eine typische Grundkonfiguration auf Cisco-Geräten kann so aussehen:

conf t
hostname R1
ip domain-name lab.local
username admin privilege 15 secret MeinPasswort123
crypto key generate rsa modulus 2048
ip ssh version 2
line vty 0 4
 login local
 transport input ssh
end
write memory

Diese Konfiguration stellt sicher, dass der Backup-Host per SSH auf das Gerät zugreifen kann.

Erreichbarkeit manuell prüfen

Ein häufiges Problem bei frühen Automatisierungsübungen ist, dass der Basiszugriff nicht sauber geprüft wurde. Deshalb sollte vor dem ersten Skriptlauf immer manuell verifiziert werden, dass die Geräte erreichbar sind und SSH funktioniert.

Typische Prüfungen vom Automation-Host:

ping 192.0.2.101
ssh admin@192.0.2.101

Auf dem Gerät selbst helfen zusätzlich:

show ip interface brief
show ip ssh
show running-config | section line vty

Diese Basistests sparen später viel Zeit bei der Fehlersuche.

Eine saubere Projektstruktur anlegen

Ordnung von Anfang an mitdenken

Auch ein kleines Lab-Projekt profitiert stark von einer klaren Struktur. Wer Skripte, Inventare und Ausgabedateien sauber trennt, arbeitet nicht nur übersichtlicher, sondern trainiert auch direkt eine professionellere Vorgehensweise.

Eine solche Struktur macht das Mini-Projekt deutlich nachvollziehbarer und erleichtert spätere Erweiterungen.

Inventardaten aus dem Skript auslagern

Gerätedaten sollten möglichst früh aus dem Python-Code ausgelagert werden. Auch im Lab ist das sinnvoll, weil so die Trennung von Daten und Logik geübt wird. Eine kleine YAML-Datei reicht dafür völlig aus.

Ein einfaches Inventar könnte so aussehen:

devices:
  - hostname: R1
    host: 192.0.2.101
    role: router
  - hostname: SW1
    host: 192.0.2.102
    role: switch

Damit wird das Skript flexibler und leichter wiederverwendbar.

Den Backup-Prozess zunächst manuell denken

Welche Schritte ein manuelles Backup enthält

Bevor der Prozess automatisiert wird, ist es hilfreich, ihn gedanklich als manuelle Abfolge zu formulieren. Genau daraus entsteht später die Logik des Skripts.

Diese manuelle Kette ist wichtig, weil gute Automatisierung fast immer mit einem klar verstandenen manuellen Prozess beginnt.

Dateibenennung bewusst festlegen

Ein häufiger Schwachpunkt bei Backups ist nicht das Sammeln der Daten, sondern ihre unklare Ablage. Schon im Lab sollte deshalb eine sinnvolle Namenskonvention verwendet werden. Sehr praktisch sind Hostname und Datum oder Zeitstempel.

Ein gutes Schema könnte zum Beispiel so aussehen:

Damit bleiben Sicherungen später leichter nachvollziehbar und vergleichbar.

Das erste einfache Backup-Skript erstellen

Ein Gerät sichern

Wie bei vielen Automatisierungsaufgaben sollte das Projekt zunächst mit genau einem Gerät beginnen. So lässt sich der Ablauf vollständig verstehen, bevor er auf mehrere Systeme skaliert wird.

Ein einfaches Python-Beispiel mit Netmiko:

from netmiko import ConnectHandler

device = {
    "device_type": "cisco_ios",
    "host": "192.0.2.101",
    "username": "admin",
    "password": "MeinPasswort123"
}

with ConnectHandler(**device) as conn:
    output = conn.send_command("show running-config")

with open("backups/R1_running_config.txt", "w") as f:
    f.write(output)

Dieses kleine Skript liefert bereits den Kern des gesamten Mini-Projekts:

Gerade im Lab sollte dieser Ablauf bewusst getestet und verstanden werden, bevor zusätzliche Komplexität hinzukommt.

Die Sicherung manuell verifizieren

Nach dem ersten Lauf ist es wichtig, nicht nur auf die Existenz der Datei zu schauen, sondern auch ihren Inhalt bewusst zu prüfen. So wird schnell sichtbar, ob die Sicherung wirklich vollständig und plausibel ist.

Diese Kontrolle trainiert eine wichtige Grundhaltung: Auch automatisierte Ergebnisse müssen verifiziert werden.

Das Skript auf mehrere Geräte erweitern

Eine Schleife über das Inventar bauen

Der nächste logische Schritt besteht darin, das Backup für mehrere Geräte zu automatisieren. Genau hier zeigt sich einer der größten Vorteile von Automatisierung: dieselbe Logik wird auf mehrere Ziele angewendet.

Ein einfaches Beispiel:

from netmiko import ConnectHandler

devices = [
    {
        "hostname": "R1",
        "device_type": "cisco_ios",
        "host": "192.0.2.101",
        "username": "admin",
        "password": "MeinPasswort123"
    },
    {
        "hostname": "SW1",
        "device_type": "cisco_ios",
        "host": "192.0.2.102",
        "username": "admin",
        "password": "MeinPasswort123"
    }
]

for device in devices:
    with ConnectHandler(**device) as conn:
        output = conn.send_command("show running-config")

    filename = f"backups/{device['hostname']}_running_config.txt"
    with open(filename, "w") as f:
        f.write(output)

Damit wird aus einer Einzelübung ein echter kleiner Backup-Prozess.

Dateinamen dynamisch erzeugen

Gerade bei mehreren Geräten ist es wichtig, dass Dateinamen automatisch aus den Gerätedaten entstehen. Dadurch werden Backups nachvollziehbar und es kommt nicht zu Überschreibungen durch manuell falsche Namen.

Diese scheinbar kleine Entscheidung ist in der Praxis sehr wichtig.

Mit YAML-Inventar arbeiten

Daten und Code sauber trennen

Für ein sinnvoll aufgebautes Mini-Projekt sollten Gerätedaten nicht dauerhaft im Skript selbst stehen. Stattdessen ist es besser, sie in einer YAML-Datei zu pflegen und im Skript einzulesen.

Ein Beispiel-Inventar:

devices:
  - hostname: R1
    host: 192.0.2.101
    device_type: cisco_ios
  - hostname: SW1
    host: 192.0.2.102
    device_type: cisco_ios

Das passende Python-Skript kann diese Daten dann verwenden. So wird direkt eine zentrale Grundidee der Network Automation geübt: Datenmodell und Programmlogik werden voneinander getrennt.

Vorteile dieser Trennung

Gerade im Lab ist das ein wertvoller Lernschritt, weil er direkt in Richtung professionellerer Arbeitsweise führt.

Das Mini-Projekt robuster machen

Einfache Fehlerbehandlung ergänzen

Ein realistisches Backup-Skript sollte nicht beim ersten Problem einfach komplett abbrechen. Gerade in Lab-Umgebungen ist es hilfreich, erste Fehlerbehandlung bewusst einzubauen. So wird schnell sichtbar, welche Geräte erfolgreich gesichert wurden und wo Probleme auftraten.

Ein einfaches Grundprinzip:

from netmiko.exceptions import NetMikoTimeoutException, NetMikoAuthenticationException

try:
    with ConnectHandler(**device) as conn:
        output = conn.send_command("show running-config")
except NetMikoAuthenticationException:
    print(f"Authentifizierung fehlgeschlagen bei {device['hostname']}")
except NetMikoTimeoutException:
    print(f"Timeout bei {device['hostname']}")

Damit wird das Mini-Projekt deutlich belastbarer und gleichzeitig realistischer.

Erfolg und Fehler sichtbar protokollieren

Auch in einem kleinen Lab-Projekt lohnt es sich, erfolgreiche und fehlgeschlagene Backups sichtbar zu protokollieren. Das muss noch kein komplexes Logging-System sein. Schon einfache Ausgaben helfen sehr.

Diese Transparenz ist wichtig, damit aus einem Skript ein verlässlicher Prozess wird und nicht nur ein stiller Versuch.

Das Backup fachlich sinnvoll erweitern

Nicht nur Running-Config sichern

Wenn der Grundprozess stabil läuft, kann das Mini-Projekt sinnvoll erweitert werden. Eine gute erste Ergänzung sind zusätzliche Befehle, die den Backup-Satz fachlich wertvoller machen.

Ein einfacher Multi-Command-Ansatz kann so aussehen:

show running-config
show version
show inventory

Diese zusätzlichen Daten helfen später dabei, Backup-Dateien besser einzuordnen und Geräteinformationen mit Konfigurationsständen zu verknüpfen.

Mit Zeitstempeln arbeiten

Ein sehr sinnvoller nächster Schritt ist es, Sicherungen mit Datum oder Zeitstempel abzulegen. Das erhöht den praktischen Wert erheblich, weil mehrere Stände desselben Geräts nachvollziehbar werden.

Schon im Lab lässt sich so der Übergang von einfacher Datenspeicherung hin zu echter Versionshistorie üben.

Typische Fehler in diesem Mini-Projekt

Verbindungsfehler mit Codefehlern verwechseln

Ein häufiger Fehler besteht darin, jedes Problem sofort als Python- oder Bibliotheksproblem zu interpretieren. In Wirklichkeit liegen viele Störungen auf Netzwerk- oder SSH-Ebene.

Die richtige Reihenfolge lautet deshalb immer: erst Erreichbarkeit, dann Login, dann Skriptlogik.

Dateien ungeordnet oder überschreibend ablegen

Ein weiterer häufiger Fehler liegt in unklarer Dateibenennung. Wenn mehrere Backups dieselbe Datei überschreiben oder die Namen keinen Bezug zum Gerät erkennen lassen, sinkt der praktische Nutzen stark.

Backups nicht inhaltlich prüfen

Nur weil eine Datei existiert, ist das Backup noch nicht automatisch brauchbar. Gerade im Lab sollte man bewusst prüfen, ob die gesicherten Inhalte vollständig und plausibel sind.

Alles in ein einziges Skript pressen

Für ein Mini-Projekt sollte die Logik zwar überschaubar bleiben, aber nicht chaotisch werden. Gerätedaten, Dateinamen, Fehlerbehandlung und Befehlslisten sollten klar erkennbar strukturiert sein.

Das Projekt mit Git sauber begleiten

Schon kleine Lab-Projekte versionieren

Auch ein einfaches Backup-Skript profitiert von Versionsverwaltung. Gerade im Lernprozess ändern sich Inventare, Dateistrukturen und Code schnell. Git macht diese Entwicklung nachvollziehbar.

Ein einfacher Einstieg:

git init
git add .
git commit -m "Initiales Mini-Projekt fuer automatisierte Netzwerk-Backups"

So können spätere Änderungen am Skript, an der Inventardatei oder an der Dateibenennung sauber zurückverfolgt werden.

Kleine, nachvollziehbare Entwicklungsschritte bevorzugen

Statt das Projekt in einem großen Sprung aufzubauen, ist es sinnvoll, schrittweise vorzugehen.

Genau diese schrittweise Entwicklung ist didaktisch und technisch deutlich sinnvoller.

Best Practices für das Mini-Projekt „Netzwerk-Backup automatisieren“

Dieses Mini-Projekt zeigt sehr anschaulich, wie aus einer einfachen Idee ein echter Automatisierungsprozess entsteht. Automatisierte Netzwerk-Backups verbinden SSH-Zugriff, Python-Logik, Inventardaten, Dateiverarbeitung und Fehlersuche zu einer Aufgabe, die im Lab gut beherrschbar und gleichzeitig fachlich äußerst relevant ist. Wer diesen Ablauf sauber umsetzt, lernt nicht nur ein nützliches Skript zu schreiben, sondern entwickelt ein belastbares Verständnis dafür, wie kleine, praktische Automatisierungsschritte im Netzwerkalltag aufgebaut werden sollten.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version