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,requestsfü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:
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:
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.
- Laden Sie VS Code von code.visualstudio.com herunter und installieren Sie es.
- Öffnen Sie VS Code und installieren Sie die Erweiterung Python von Microsoft über den Extensions-Tab.
- Öffnen Sie Ihr Projektverzeichnis in VS Code.
- 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 requestsfü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:
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:
Zum Setup:
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:
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:
Das Ergebnis sollte die Ausgabe
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:
Warum diese Struktur?
def main():definiert eine Funktion namensmain, die den Hauptcode enthält.if __name__ == "__main__":stellt sicher, dassmain()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.withsorgt 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 dieif __name__ == "__main__"-Abfrage sind bewährte Strukturen für Skripte. - Dateioperationen sind mit
open()undwithunkompliziert 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.