Automatisiertes Service-Deployment mit Pyinfra

Schlangenöl

Das noch recht junge Werkzeug Pyinfra richtet halbautomatisch beliebig viele Server maßgetreu ein. Im Gegensatz zu ähnlichen Konkurrenzprogrammen lässt sich Pyinfra jedoch mit Python-Skripten steuern und in eigene Python-Programme einbinden.
Skripte können Administratoren das Leben deutlich leichter machen - besonders, wenn sich wiederholende Abläufe im Spiel sind. Dabei steht eine Vielzahl an ... (mehr)

Ä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.

Installation

Um Pyinfra nutzen zu können, benötigen

...

Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023