Stand-Alone Fabfile für Stoff?

8

Ist es möglich, die Fabfile Stand-Alone zu machen? Ich bin nicht sehr gern mit dem externen Tool "fab". Wenn es mir gelingt, die fabfile standalone zu bekommen, kann ich die Datei innerhalb der (Eclipse / Pydev) IDE ausführen, sie leicht debuggen, Projektkonfigurationen und Pfade usw. verwenden Warum funktioniert das nicht?

%Vor%     
Tal Weiss 19.07.2010, 06:31
quelle

10 Antworten

13

Ich fand schließlich die Lösung (und es ist wirklich einfach!).
In meiner Fabdatei fügte ich hinzu:

%Vor%

Ich hoffe, das hilft den Leuten ...

    
Tal Weiss 19.06.2011, 08:58
quelle
3

Wenn ich mich richtig erinnere, konnte ich die Fabric-API nicht dazu bringen, das zu tun, was ich wollte. Ich entschied mich dafür, die Extra-Ebene vollständig zu verlassen und direkt zu verwenden:

%Vor%

Obwohl es noch ein paar weitere Schritte gibt, können Sie auf diese Weise die SSH-Ebene direkt nutzen, anstatt subprocess zu verwenden, um eine andere Python-Instanz zu spwanieren oder die Fabric-API herauszufinden. Ich habe mehrere Projekte, sowohl Web- als auch Konsolen, die Paramiko auf diese Weise verwenden und ich hatte nicht allzu viele Probleme.

Paramiko ist ausführlich dokumentiert .

    
AdmiralNemo 19.07.2010 07:26
quelle
2

Das ist keine wirklich nette Lösung, aber es wird funktionieren:

%Vor%     
muksie 19.07.2010 06:39
quelle
2

Ich habe das obige Beispiel auf argv-Argumente abgestimmt, die Sie möglicherweise an lokale Befehle übergeben möchten, und geben eine optionale default_commands-Liste anstelle eines fest codierten Befehlsnamens an. Beachten Sie, dass der Dateiname eine .py-Erweiterung haben muss oder Fab sie nicht als fab-Datei erkennt!

%Vor%     
bfschott 12.01.2012 17:01
quelle
2

docs.fabfile.org/en/1.4.0/usage/library.html

"Wie in diesem Abschnitt erwähnt, ist der Schlüssel einfach der Lauf, Sudo und der andere Operationen suchen nur an einer Stelle beim Verbinden: env.host_string. Alle Die anderen Mechanismen zum Setzen von Hosts werden vom Fab-Tool interpretiert Wenn es ausgeführt wird, spielt es keine Rolle, wenn es als Bibliothek ausgeführt wird. "

Ich habe mir das gleiche Problem angesehen, als ich das gefunden habe. Ich erinnere mich auch an Erwähnung, dass env-Änderungen nicht in der gleichen Definition wie run, sudo sind, wenn sie in einer Fabdatei verwendet werden. Wer weiß, ob das im "Bibliotheksmodus" noch gilt.

EDIT: Hier ist ein Beispiel für diese Implementierung

%Vor%     
Aaron Robinson 23.02.2012 05:36
quelle
2
%Vor%     
Jon 25.05.2012 22:42
quelle
2

Seit 1.5.0 gibt es einen besseren Weg dies zu tun, als mit argv herumzuspielen.

%Vor%

Dies kann auch als Konsolenskript in setup.py

verwendet werden     
Greg 22.08.2013 00:59
quelle
1

Fügen Sie dies am Ende Ihrer Fab-Datei hinzu.

%Vor%     
user1971573 12.01.2013 00:50
quelle
0

Dies ist meine modifizierte Version von Gregs Antwort , die das Standardverhalten so ändert, dass verfügbare Befehle angezeigt werden, anstatt eine Unmenge von Stoffoptionen aufzulisten .

%Vor%     
anatoly techtonik 21.04.2014 10:26
quelle
0

Ich fand die Lösung indirekt auf run fabric file umbenannt anders als fabfile.py und passwortloser ssh

%Vor%

Dies funktioniert auch, wenn Ihre Datei nicht .py Erweiterung hat.

    
Wernight 01.10.2015 08:34
quelle

Tags und Links