Skip to content

Einführung in Python

Python installieren, erste Programme ausführen und die Sprache als Werkzeug für Automatisierung und Administration kennenlernen.

Python gehört heute zu den wichtigsten Werkzeugen für Systemadministratoren, DevOps Engineers und Infrastrukturteams.

Ob Logdateien analysieren, Dateien verarbeiten, REST-APIs abfragen, Konfigurationsdateien erzeugen oder wiederkehrende Aufgaben automatisieren – viele Tätigkeiten lassen sich mit Python deutlich komfortabler umsetzen als mit klassischen Shell-Skripten.

Python zeichnet sich durch eine leicht lesbare Syntax, eine große Standardbibliothek und eine enorme Anzahl verfügbarer Pakete aus. Dadurch eignet sich die Sprache sowohl für kleine Hilfsskripte als auch für umfangreiche Automatisierungslösungen.

In diesem Kapitel richten Sie Ihre Arbeitsumgebung ein, führen die ersten Python-Programme aus und lernen die grundlegende Arbeitsweise der Sprache kennen.

Dieses Wissen bildet die Grundlage für alle weiteren Kapitel.

Warum Python?

Warum Python in der Systemadministration und DevOps?

Python hat sich in den letzten Jahren als eines der wichtigsten Werkzeuge für Systemadministratoren, DevOps-Teams und IT-Profis etabliert. Der Grund liegt in seiner Kombination aus einfacher Syntax, großer Flexibilität und einer umfangreichen Standardbibliothek, die viele typische Aufgaben direkt unterstützt.

Umfangreiche Bibliotheken für administrative Aufgaben

Python bringt viele Module mit, die alltägliche Aufgaben vereinfachen:

  • Datei- und Verzeichnisoperationen (Modul os, pathlib)
  • Netzwerkkommunikation (Modul socket, requests für HTTP)
  • Prozesssteuerung und Systeminformationen (Modul subprocess, psutil)
  • Datenformate verarbeiten (JSON, CSV, XML)

Diese Bibliotheken sind oft plattformübergreifend und sparen die Arbeit, eigene Lösungen zu entwickeln.

Automatisierung über Skripte hinaus

Python eignet sich nicht nur für einfache Skripte, sondern auch für komplexere Automatisierungs-Workflows und Integration von APIs:

import requests

response = requests.get('https://api.example.com/status')
if response.ok:
    data = response.json()
    print(f"Serverstatus: {data['status']}")
else:
    print("Fehler bei der API-Abfrage")

Solche Aufgaben sind mit reinen Shell-Skripten oft umständlich oder erfordern zusätzliche Tools.

Plattformunabhängigkeit

Python läuft sowohl auf Linux, Windows als auch macOS. Das macht Skripte portabel und erleichtert den Einsatz in heterogenen Umgebungen.

Integration in bestehende Workflows

Python lässt sich gut mit anderen Tools kombinieren, etwa zur Verarbeitung von Logdateien, Steuerung von Container-Plattformen oder Cloud-APIs. Die Sprache ist flexibel genug, um sowohl kleine Hilfsskripte als auch umfangreiche Automatisierungsprojekte abzudecken.

Beispiel: Vergleich Bash vs. Python für Dateizählung

Bash:

count=(ls -1 *.log | wc -l)
echo "Logdateien: count"

Python:

from pathlib import Path

log_files = list(Path('.').glob('*.log'))
print(f"Logdateien: {len(log_files)}")

Python ist hier nicht nur lesbarer, sondern auch leichter erweiterbar, z.B. um Filter oder komplexere Logik einzubauen.

Zusammenfassung

Python bietet für Administratoren und DevOps-Profis eine ideale Mischung aus Einfachheit, Leistungsfähigkeit und Vielseitigkeit. Es ermöglicht, alltägliche Aufgaben effizient zu automatisieren, komplexe Abläufe zu steuern und plattformübergreifend zu arbeiten – und das mit einer klaren, wartbaren Syntax, die auch bei wachsender Komplexität den Überblick bewahrt.

Python installieren und Arbeitsumgebung einrichten

Python installieren

Python ist auf den meisten Linux-Distributionen bereits vorinstalliert. Auf Windows und macOS muss Python meist manuell installiert werden.

  • Linux: Prüfen Sie mit python3 --version, ob Python 3.6+ installiert ist. Falls nicht, installieren Sie es über den Paketmanager, z. B. sudo apt install python3.
  • Windows: Laden Sie den Installer von python.org herunter. Achten Sie darauf, während der Installation die Option "Add Python to PATH" zu aktivieren.
  • macOS: Python 3 ist nicht immer vorinstalliert. Nutzen Sie Homebrew: brew install python.

Virtuelle Umgebungen (Virtual Environments)

Virtuelle Umgebungen isolieren Python-Projekte voneinander, sodass Abhängigkeiten nicht global installiert werden müssen. Das ist besonders wichtig, um Versionskonflikte zu vermeiden.

Erstellen und aktivieren Sie eine virtuelle Umgebung so:

python3 -m venv env
source env/bin/activate  # Linux/macOS
env\Scripts\activate    # Windows

Innerhalb der aktivierten Umgebung installieren Sie Pakete mit pip install paketname. Zum Verlassen deactivate eingeben.

Visual Studio Code (VS Code) als Entwicklungsumgebung

VS Code ist ein schlanker, aber leistungsfähiger Editor mit hervorragender Python-Unterstützung.

  1. Laden Sie VS Code von code.visualstudio.com herunter und installieren Sie es.
  2. Öffnen Sie VS Code und installieren Sie die Erweiterung Python von Microsoft über den Extensions-Tab.
  3. Öffnen Sie Ihr Projektverzeichnis in VS Code.
  4. Wählen Sie im unteren linken Bereich die Python-Interpreter-Version aus (z. B. Ihre virtuelle Umgebung).

VS Code bietet Syntaxhervorhebung, Debugging, automatische Formatierung und Linting, was die tägliche Arbeit erheblich erleichtert.

Wichtige Werkzeuge für die tägliche Arbeit

  • pip: Paketverwaltung für Python. Beispiel: pip install requests für HTTP-Anfragen.
  • ipython: Interaktive Shell mit erweiterten Funktionen, ideal für schnelle Tests.
  • black: Automatischer Code-Formatter, um einheitlichen Stil sicherzustellen.
  • pytest: Einfaches Test-Framework für automatisierte Tests.

Installation erfolgt meist per pip:

pip install ipython black pytest

Praxisbeispiel: Projektstruktur mit virtueller Umgebung

So könnte ein einfaches Automatisierungsprojekt aussehen:

my_automation_project/
├── env/                # Virtuelle Umgebung
├── scripts/            # Python-Skripte
│   └── backup.py
├── requirements.txt    # Abhängigkeiten
└── README.md

requirements.txt listet alle benötigten Pakete:

requests
paramiko

Zum Setup:

python3 -m venv env
source env/bin/activate
pip install -r requirements.txt

Warum nicht nur Shell-Skripte?

Shell-Skripte sind oft schnell geschrieben, stoßen aber bei komplexeren Aufgaben an Grenzen:

  • Python bietet bessere Fehlerbehandlung und lesbare Syntax.
  • Umfangreiche Bibliotheken erleichtern Netzwerk- und API-Arbeit.
  • Plattformunabhängigkeit: Python-Skripte laufen meist unverändert auf Linux, Windows und macOS.

Diese Vorteile machen Python zum idealen Werkzeug für nachhaltige Automatisierung.


Mit dieser Basis sind Sie bereit, Python effizient für Ihre administrativen Aufgaben einzusetzen.

Das erste Python-Programm

Ein einfaches Python-Skript erstellen und ausführen

Beginnen wir mit einem minimalen Python-Programm, das eine Nachricht auf der Konsole ausgibt. Das entspricht in etwa dem "Hello World"-Programm, das in vielen Sprachen als erstes Beispiel dient. In Python ist das besonders einfach:

print("Hallo aus Python!")

Speichere diesen Code in einer Datei mit der Endung .py, zum Beispiel erstes_programm.py.

Ausführung des Skripts

Um das Skript auszuführen, öffnest du eine Konsole (Terminal oder PowerShell) und gibst ein:

python erstes_programm.py

Das Ergebnis sollte die Ausgabe

Hallo aus Python!

sein.

Warum ist das so einfach?

In Python ist print() eine eingebaute Funktion, die Text auf der Standardausgabe (normalerweise das Terminal) ausgibt. Im Vergleich zu Java oder C# entfällt die Definition einer Klasse oder Methode, um ein Programm zu starten. Python ist eine interpretierte Sprache, die Code von oben nach unten ausführt.

Grundlegende Struktur eines Python-Programms

Ein Python-Skript besteht aus einer Folge von Anweisungen, die nacheinander abgearbeitet werden. Für einfache Automatisierungsaufgaben reicht das oft schon aus.

Für komplexere Skripte ist es üblich, den ausführbaren Teil in eine Funktion main() zu packen und diese Funktion am Ende aufzurufen:

def main():
    print("Automatisierung mit Python startet...")

if __name__ == "__main__":
    main()

Warum diese Struktur?

  • def main(): definiert eine Funktion namens main, die den Hauptcode enthält.
  • if __name__ == "__main__": stellt sicher, dass main() nur ausgeführt wird, wenn das Skript direkt gestartet wird, nicht wenn es importiert wird.

Diese Struktur ist eine bewährte Praxis, die auch in der Administration wichtig ist, wenn du Skripte modular und wiederverwendbar gestalten möchtest.

Ein praktisches Beispiel: Logdatei ausgeben

Statt nur eine Nachricht zu drucken, lesen wir eine Logdatei und geben die ersten 5 Zeilen aus. Das zeigt, wie einfach Dateioperationen in Python sind:

logdatei = "/var/log/syslog"  # Beispiel für Linux-Logdatei

with open(logdatei, "r", encoding="utf-8") as f:
    for i in range(5):
        zeile = f.readline()
        if not zeile:
            break
        print(zeile.strip())

Erklärung:

  • open() öffnet die Datei im Lesemodus.
  • with sorgt dafür, dass die Datei nach dem Lesen automatisch geschlossen wird.
  • readline() liest Zeile für Zeile.
  • strip() entfernt unerwünschte Leerzeichen und Zeilenumbrüche.

Vorteile von Python gegenüber Shell-Skripten

  • Lesbarkeit: Python-Code ist klar strukturiert und leichter zu verstehen.
  • Portabilität: Das gleiche Skript läuft auf Linux, Windows und macOS ohne Änderungen.
  • Erweiterbarkeit: Python bietet umfangreiche Bibliotheken für komplexe Aufgaben (z.B. API-Zugriffe).

Zusammenfassung

  • Ein Python-Skript ist eine einfache Textdatei mit .py-Endung.
  • print() gibt Text auf der Konsole aus.
  • Die main()-Funktion und die if __name__ == "__main__"-Abfrage sind bewährte Strukturen für Skripte.
  • Dateioperationen sind mit open() und with unkompliziert und sicher.
  • Python eignet sich hervorragend für schnelle, gut lesbare Automatisierungsskripte.

Im nächsten Schritt lernst du, wie du mit Python typische Administrationsaufgaben wie Dateiverarbeitung und API-Abfragen effizient löst.

Python im Administrationsalltag

Dateiverarbeitung: Logs und Konfigurationsdateien automatisiert bearbeiten

Ein typischer Anwendungsfall in der Systemadministration ist das Auswerten von Logdateien oder das Anpassen von Konfigurationsdateien. Python ermöglicht es, solche Dateien zeilenweise zu lesen und gezielt zu verarbeiten – oft einfacher und flexibler als klassische Shell-Skripte.

Beispiel: Auswertung einer Logdatei, um alle Fehlerzeilen zu extrahieren:

logfile = '/var/log/syslog'
error_lines = []

with open(logfile, 'r', encoding='utf-8') as f:
    for line in f:
        if 'error' in line.lower():
            error_lines.append(line.strip())

print(f'Gefundene Fehler: {len(error_lines)}')
for err in error_lines:
    print(err)

Dieses Skript liest die Logdatei zeilenweise und sammelt alle Zeilen, die das Wort „error“ enthalten. Das ist effizient und gut lesbar.

Automatisierung von Routineaufgaben

Python eignet sich hervorragend, um wiederkehrende Aufgaben zu automatisieren, etwa das Erstellen von Backups oder das Verschieben von Dateien.

Beispiel: Backup aller Dateien aus einem Verzeichnis in ein ZIP-Archiv:

import zipfile
from pathlib import Path

source_dir = Path('/etc')
backup_file = Path('/backup/etc_backup.zip')

with zipfile.ZipFile(backup_file, 'w') as archive:
    for file in source_dir.rglob('*'):
        if file.is_file():
            archive.write(file, file.relative_to(source_dir))

print(f'Backup erstellt: {backup_file}')

Hier sehen Sie, wie Python mit wenigen Zeilen ein komplettes Verzeichnis archiviert. Im Vergleich zu Shell-Skripten ist der Code plattformunabhängig und besser wartbar.

REST-API-Abfragen für Infrastruktur und Monitoring

Viele moderne Systeme bieten APIs an, um Statusinformationen abzurufen oder Konfigurationen zu ändern. Python macht es einfach, solche APIs anzusprechen und die Antworten weiterzuverarbeiten.

Beispiel: Abfrage einer JSON-API mit dem Modul requests (muss ggf. installiert werden):

import requests

response = requests.get('https://api.example.com/status')
response.raise_for_status()  # Fehler prüfen

data = response.json()

print(f'Status: {data["status"]}')

Das Beispiel zeigt, wie Sie mit minimalem Aufwand eine API ansprechen und die Antwort als Python-Datenstruktur nutzen. So lassen sich z.B. Monitoring-Daten automatisiert auswerten.

Verzeichnisoperationen und Dateimanagement

Python bietet mit pathlib ein modernes und intuitives Werkzeug, um mit Pfaden und Dateien zu arbeiten – plattformübergreifend und sicher.

Beispiel: Alle Dateien mit bestimmter Endung in einem Verzeichnis finden und löschen:

from pathlib import Path

target_dir = Path('/tmp')

for file in target_dir.glob('*.tmp'):
    print(f'Lösche Datei: {file}')
    file.unlink()  # Datei löschen

Dieses Beispiel zeigt, wie einfach sich Dateien gezielt verwalten lassen – oft übersichtlicher als mit Shell-Kommandos.

Warum Python statt Shell-Skripte?

  • Lesbarkeit: Python-Code ist meist klarer strukturiert und leichter wartbar.
  • Portabilität: Python-Skripte laufen auf Linux, Windows und macOS ohne Anpassungen.
  • Leistungsfähigkeit: Komplexe Datenstrukturen, API-Parsing und Fehlerbehandlung sind einfacher.
  • Bibliotheken: Umfangreiche Standard- und Drittanbieterbibliotheken erleichtern viele Aufgaben.

Zusammenfassung

Python ist im Administrationsalltag ein vielseitiges Werkzeug, das über die Möglichkeiten klassischer Shell-Skripte hinausgeht. Ob Dateiverarbeitung, Automatisierung, API-Abfragen oder Infrastrukturmanagement – Python ermöglicht effiziente, gut lesbare und wartbare Lösungen, die sich leicht an wechselnde Anforderungen anpassen lassen.