Ähnlich wie Otto oder Puppet [1] vereinfacht Pyinfra die Einrichtung mehrerer Server und das Deployment von Diensten. Der Administrator notiert zunächst in einer Konfigurationsdatei, welche Dienste auf welchem Server laufen sollen. Anschließend vergleicht Pyinfra diese Angaben mit dem aktuellen Zustand des Servers. Bei einer Abweichung ändert Pyinfra automatisch die Server-Konfiguration beziehungsweise startet und stoppt Dienste.
Möchte der Admin etwa auf allen Datenbankservern MySQL durch die Kollegin MariaDB ersetzen, notiert er dies in der entsprechenden Konfigurationsdatei, startet Pyinfra und lehnt sich gemütlich zurück. Den gesamten Einrichtungs- und Deployment-Vorgang können Administratoren flexibel und detailliert mit Python-Programmcode steuern. Das Tool bietet sogar eine API, über die es sich in eigene Python-Anwendungen integrieren lässt. Um Pyinfra nutzen zu können, müssen Anwender aber keine Python-Gurus sein. Die Entwickler versprechen, dass das Deployment asynchron und hoch performant abläuft. Pyinfra untersteht der liberalen MIT-Lizenz und ist komplett in Python geschrieben.
Drei Wermutstropfen gibt es allerdings: Pyinfra kann derzeit nur Server anpassen, auf denen ein Linux-System läuft. Des Weiteren müssen die Server zwingend per SSH erreichbar sein und eine Shell bereitstellen. Im Gegenzug ist kein spezieller Server-Dienst beziehungsweise Daemon notwendig, wie ihn etwa Puppet voraussetzt. Schließlich befindet sich das Tool noch ganz am Anfang seiner Entwicklung. Die folgenden Ausführungen beziehen sich auf die zum Redaktionsschluss aktuelle Version 0.1.dev10. Wie das "dev" anzeigt, können sich der Funktionsumfang und die Programmier-API noch ändern. Administratoren sollten sich folglich zwei Mal überlegen, ob sie das Tool in diesem Stadium auf einen produktiven Server loslassen.
Um Pyinfra nutzen zu können, benötigen
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.