Nabugu - stock.adobe.com

Git für Netzwerktechniker: Eine Einführung

Git kann ein nützliches Tool für Netzwerktechniker sein, die komplexe Infrastrukturen verwalten, da sich Networking, Software, Automatisierung und DevOps zunehmend überschneiden.

Die Zeiten, als Netzwerkexperten Konfigurationsänderungen in einem Netzwerk manuell überprüft haben, sind vorbei. In der sich ständig weiterentwickelnden digitalen Gesellschaft können Netzwerkteams Netzwerkautomatisierung, DevOps und Infrastructure as Code (IaC) nutzen, um das Konfigurationsmanagement zu optimieren.

Heutzutage gibt es in vielen Unternehmen Teams, die über die ganze Welt verteilt sind, oft mit einer Mischung aus Remote- und Hybrid-Mitarbeitern. Die Verwaltung dieser Mitarbeiter und der sie unterstützenden Netzwerke ist dank Automatisierung und Versionskontrollsystemen (Version Control System, VCS), zum Beispiel Git, einfacher geworden.

Netzwerktechniker können mit Git Netzwerkkonfigurationsdateien verwalten, gemeinsam an Projekten arbeiten, Änderungen an Konfigurationen überwachen und die Dokumentation verbessern.

Wie Git funktioniert

Git ist ein verteiltes VCS, das eine Datenbank verwendet, um Änderungen zu verfolgen, die von Netzwerktechnikern oder Entwicklern bei der Arbeit am gleichen Projekt vorgenommen werden. Ein VCS speichert verschiedene Dateien und zeichnet alle an ihnen durchgeführten Änderungen auf. Somit können Teams Änderungen vergleichen oder zurücknehmen und sehen, wer die Datei geändert hat.

Git hilft, die Verantwortlichkeiten zu klären. Wenn jemand Änderungen vornimmt, kann Git den Code oder die Netzwerkkonfigurationen schützen, indem das Tool es den Benutzern ermöglicht, jede Änderung zu überprüfen. Ein Code-Commit speichert zum Beispiel eine Codeänderung und sendet sie an das Repository. Die Teams können hierarchische Ordner und Tags verwenden, um innerhalb des Codes anzugeben, wer wann eine Änderung durchgeführt hat.

Git verwendet eine Prüfsumme, um die Integrität des Repositorys zu verifizieren. Es erkennt Beschädigungen mithilfe eines kryptografischen SHA-1-Hashs (Secure Hash Algorithm 1), der durch einen Prüfsumme mit 40 hexadezimalen Zeichen dargestellt wird.

Bevor wir uns mit den einzelnen Befehlen befassen, erläutern wir im Folgenden einige Begriffe aus der Git-Terminologie:

  • Lokaler Workspace: Ein Workspace (auch Arbeitsbereich genannt) ist das Arbeitsverzeichnis auf einem lokalen Rechner, in dem Benutzer Änderungen an Projektdateien vornehmen. Es handelt sich um einen Projektordner, in dem die Benutzer laufende Projekte speichern, bevor sie sie zu einem Repository hinzufügen.
  • Staging-Bereich: Benutzer können Commits in einem Staging-Bereich vor der Übernahme in ein Repository bearbeiten und überprüfen. Dieser Index verfolgt Änderungen im Arbeitsverzeichnis.
  • Haupt- oder lokales Repository: Ein Repository ist der GIT-Ordner, der alle Projektdateien und den Projektverlauf enthält. Benutzer können im Repository, das sich auf einem Arbeitsplatzrechner befindet, Dateien hinzufügen, Änderungen übertragen und Dateien löschen.

Die Stärke von Git liegt in der Möglichkeit, Branches (Verzweigungen) zu verwenden, bei denen es sich um separate Versionen des Haupt-Repositorys handelt. Branches ermöglichen es den Benutzern, gleichzeitig an verschiedenen Versionen zu arbeiten, ohne die Hauptversion des Projekts zu verändern. Die Nutzer können wählen, ob sie gegebenenfalls die Änderungen im Hauptprojekt zusammenführen wollen oder ihre Versionen getrennt halten möchten. Branches sind vergleichbar mit der Arbeit in verschiedenen Verzeichnissen unter Linux.

Praktische Beispiele mit Git

Der beste Weg, sich als Netzwerktechniker mit Git vertraut zu machen, ist die tägliche Praxis. Folgend finden Sie einige grundlegende Befehle für die ersten Schritte mit Git.

1. Git config

Der Befehl git config legt die Benutzerinformationen für verschiedene Repositories fest. Mit diesem Befehl lassen sich Benutzernamen, E-Mail-Adressen und Konfigurationseinstellungen für die einzelnen Benutzer einrichten.

Benutzernamen und E-Mail-Adresse für Anwender mit git config festlegen.
Abbildung 1: Benutzernamen und E-Mail-Adresse für Anwender mit git config festlegen.

2. Git init

Der Befehl git init erstellt ein neues Repository und initialisiert eine GIT-Datei, die ein Unterverzeichnis mit allen Repository-Metadaten und -Datenstrukturen enthält.

Neues Repository mit dem Namen Dev_Test anlegen mit git init.
Abbildung 2: Neues Repository mit dem Namen Dev_Test anlegen mit git init.

3. Git clone

Der Befehl git clone lädt ein Remote Repository von einer bestimmten URL herunter. Das Kommando erstellt eine Arbeitskopie eines Repositorys, so dass Benutzer Änderungen am Remote Repository bearbeiten, übertragen und zurücknehmen können.

Herunterladen eine Remote Repositorys mit git clone.
Abbildung 3: Herunterladen eine Remote Repositorys mit git clone.

4. Git status

Der Befehl git status zeigt den Status eines Git-Repositorys und dessen Dateien an. Er informiert zum Beispiel darüber, ob eine Datei geändert, hinzugefügt, bereitgestellt oder gelöscht wurde. Das Kommando zeigt auch nicht nachverfolgte Dateien an, die hinzugefügt oder geändert wurden, wie nachfolgend rot dargestellt.

Status eines Git-Repositorys anzeigen lassen mit git status.
Abbildung 4: Status eines Git-Repositorys anzeigen lassen mit git status.

5. Git add

Der Befehl git add fügt alle angegebenen Dateien und deren Inhalt aus einem lokalen Workspace, wie hier grün dargestellt, zum Staging-Bereich beziehungsweise Index hinzu. Dieser Befehl ist erforderlich, bevor ein Commit durchgeführt wird.

Hinzufügen einer Datei aus dem lokalen Workspace mit git add.
Abbildung 5: Hinzufügen einer Datei aus dem lokalen Workspace mit git add.

6. Git commit

Das Kommando git commit fasst den Verlauf aller vorgenommenen Änderungen an einem lokalen Repository zusammen und speichert ihn. Dieser Befehl hält Autoren, Zeitstempel und Commit-Meldungen fest. Mit git commit -m lässt sich eine Commit-Nachricht hinzufügen, wie nachfolgend gezeigt.

Alle Änderungen speichern mit git commit. Der Parameter -m fügt eine Nachricht hinzu.
Abbildung 6: Alle Änderungen speichern mit git commit. Der Parameter -m fügt eine Nachricht hinzu.

7. Git log

Der Befehl git log führt die Commits eines Repositorys in chronologischer Reihenfolge auf. Das Protokoll enthält Informationen wie den Commit-Hash, den Autor, das Datum und die Commit-Nachricht.

Git log listet die Commits eines Repositorys auf.
Abbildung 7: Git log listet die Commits eines Repositorys auf.

Networking-Anwendungsfälle für Git

Folgend finden Sie einige Möglichkeiten, wie Netzwerktechniker Git für die Versionskontrolle, Netzwerkkonfiguration und Skriptverwaltung nutzen können.

Anwendungsfälle für die Versionskontrolle Anwendungsfälle für die Netzwerkkonfiguration Anwendungsfälle für die Skriptverwaltung
Konfigurationsmanagement Einfache Nachverfolgung von Änderungen an der Konfiguration im zeitlichen Verlauf Bash-Skripte zur Automatisierung täglicher Aufgaben
Dokumentation Nachverfolgung von Änderungen an der Netzwerktopologie und anderen netzwerkrelevanten Änderungen Automatisierung täglicher Aufgaben mit Python-Skripten
Troubleshooting Anpassen von Konfigurationen und Rollback beim Troubleshooting
Nachverfolgung von Codeänderungen und Codeverwaltung Backups von Netzwerkgeräten

Git, Ansible, Python und CLI im Vergleich

Sowohl Git als auch Ansible und Python sind kostenlose Open Source Tools, die bei der Softwareentwicklung und dem Infrastrukturmanagement helfen. Aber jedes Tool dient einem spezifischen Zweck.

Bei Git handelt es sich um ein verteiltes VCS, das schnell und gleichzeitig skalierbar ist. Es dient in erster Linie der Verfolgung von Änderungen am Quellcode und der Softwareentwicklung.

Ansible ist ein Automatisierungs-Tool, das bei der Systemkonfiguration und -verwaltung hilft. Es kann Aufgaben auf Netzwerkgeräten, Servern und in Cloud-Umgebungen automatisieren.

Python ist eine Programmiersprache und bleibt der De-facto-Standard für die Netzwerkautomatisierung. Sie ist wegen ihrer klaren Syntax, Lesbarkeit und Debugging-Möglichkeiten populär.

Die Kommandozeile (Command Line Interface, CLI) stellt eine allgemeine Schnittstelle dar, über die Benutzer mit einem Computer interagieren können. Git ist ein spezielles Tool, das sich über die Kommandozeile nutzen lässt.

Git kann sowohl mit Python als auch mit Ansible interagieren, um die Verwaltung von Quellcode zu erleichtern. Im Rahmen eines Automatisierungs-Workflows kann Ansible beispielsweise mit Git Quellcode aus einem Repository abrufen.

Vorteile von Git

Entwickler und Netzwerktechniker bevorzugen Git als verteiltes VCS aufgrund seiner Geschwindigkeit und Skalierbarkeit. Ohne Git kann es schwierig sein, eine komplexe Netzwerkinfrastruktur zu managen. Zu den weiteren Vorteilen von Git gehören folgende Aspekte:

  • Git ist das am häufigsten eingesetzte VCS in der Softwareentwicklung. Es zeichnet sich durch eine umfangreiche Dokumentation und eine große Community aus, was die Zusammenarbeit und Automatisierung verbessert.
  • Die Branching-Funktionen von Git unterstützen die Zusammenarbeit von verteilten Teams auf der ganzen Welt.
  • Es ist quelloffen und kostenlos.

Nachteile von Git

Obwohl Git viele Vorteile bietet, gibt es auch einige Nachteile. Dazu zählen die folgenden Punkte:

  • Git ist anfangs nicht leicht zu erlernen, insbesondere für Netzwerktechniker, die mit den Konzepten der Softwareentwicklung noch nicht vertraut sind.
  • Es bedarf einiger Übung, um das Tool, die Terminologie, Funktionen und Prozesse zu verstehen.
  • Git kann aufgrund der Größe des Repositorys erhebliche Storage-Ressourcen beanspruchen.

Best Practices für Git

Folgend finden Sie einige Best Practices, die Netzwerktechniker bei der Arbeit mit Git berücksichtigen sollten:

  • Richten Sie ein Repository ein.
  • Verwenden Sie stets Namenskonventionen für Branches.
  • Schützen Sie den Haupt-Branch.
  • Erstellen Sie einen Standard für Commit-Nachrichten.
  • Nutzen Sie Tagging.
  • Verwenden Sie Pull Requests, um Änderungen zusammenzuführen.

Git ist ein mächtiges Tool. Angesichts der zunehmenden Bedeutung von Automatisierung und Software im Networking könnte die Fähigkeit, mit Git umzugehen, zu einer Schlüsselqualifikation für Netzwerktechniker beim Management komplexer Infrastrukturen werden.

Erfahren Sie mehr über Netzwerksoftware