Obwohl Linux als freie Software kostenlos verfügbar ist, setzen viele beim Unternehmenseinsatz auf Enterprise-Distributionen mit Support. Wo die Stärken der ... (mehr)

Vielfalt

Mit »-l« aufgerufen, listet Fabric nur die definierten Tasks auf, was in vielen Anwendungsfällen genügt. Wer Wert auf bessere Dokumentation legt, kann mehr Informationen zu jedem Task in den typischen Python-Docstrings ablegen, die als Erstes nach der Funktions-Definition folgen und in drei Anführungszeichen eingeschlossen werden:

@task
def complicated_steps():
   """ This task does all of the      complicated steps for us. """
run(...)

Jetzt listet »fab -l« genauso den Task »complicated_steps« auf, gibt aber dazu noch die Beschreibung aus.

Einige weitere Funktionen erlauben mehr Kontrolle über die Ausgabe, das Listing 4 gibt dafür ein Beispiel. So färbt die Funktion »green()« die Ausgabe grün, wie die Zeile 6 zeigt. In einem With-Block eingeschlossen, verhindert das folgende »hide()« alle Meldungen des ausgeführten Befehls. Eine Zwischenmeldung wird mit »red()« rot hervorgehoben, bevor ein weiterer Befehl wieder die Standard-Meldungen ausgibt.

Listing 4

Farbige Ausgabe

01 from fabric.api import *
02 from fabric.colors import green, red
03
04 @task
05 def colored_and_silent():
06    print green("Running noisy command silently...")
07    with settings(hide('running', 'stdout', 'stderr')):
08       run('/path/to/noisy-command')
09    print red("Commands are noisy again")
10    run('/path/to/another-noisy-command')

Infos

  1. Thomas Gelf, Am Schnürchen, Konfigurationsverwaltung mit Puppet, ADMIN 06/2010, S. 50
  2. Fabric: http://fabfile.org
  3. Oliver Frommel, Eingepackt, RPMs von und für Python, ADMIN 03/2012, S. 120

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

ADMIN-Tipp: Remote Execution

Will man Anwendungen auf verschiedene Hosts verteilen und/oder entfernt Kommandos ausführen, bieten sich etliche mächtige Werkzeuge an, darunter etwa Chef, Puppet oder Cfengine. Ist deren Komplexität aber zu viel des Guten, dann geht es auch eine Nummer kleiner gut: Mit dem Python-Tool fabric .

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