Fabric: Fabric 2 – Ausführen einer Aufgabe für eine Gruppe (mit Argumenten)

Erstellt am 8. Dez. 2017  ·  5Kommentare  ·  Quelle: fabric/fabric

Ich habe eine Aufgabe mit Argumenten. Ich möchte diese Aufgabe auf einer Gruppe von Hosts mit einem anderen Argument für die Aufgabe je nach Host innerhalb eines anderen Python-Skripts ausführen.

Der Kommentar in execute sagt, dass es gemäß dem Tutorial implementiert werden soll. Kann ich einen Link zu diesem Tutorial bekommen? Und wenn ich es zum Laufen bringe / es zum Laufen bringe, wenn Argumente übergeben werden, wäre dies eine willkommene Pull-Anfrage?

Feature Group

Hilfreichster Kommentar

Diese Funktion ist für fabric2 dringend benötigt. Hast du eine Idee, wann es zusammengelegt wird?

Alle 5 Kommentare

Ich denke, dies kommt einem Fabric 2-Tutorial am nächsten: http://docs.fabfile.org/en/stable/getting_started.html

Ich möchte diese Aufgabe auf einer Gruppe von Hosts mit einem anderen Argument für die Aufgabe je nach Host innerhalb eines anderen Python-Skripts ausführen.

Da ich Ihren genauen Anwendungsfall nicht kenne und feststelle, dass Group noch nicht sehr gut ausgearbeitet ist (der Fokus lag darauf, Connection in einen guten Zustand zu bringen), möchte ich darauf hinweisen, dass Group _bisher_ als Convenience-/Wrapper-API konzipiert wurde nur - es ist der übliche Fall von "Ich gebe Ihnen eine Liste von Hostnamen und eine Sache, die Sie tun müssen, und Sie tun es für mich, ohne dass ich meine eigene Schleife schreiben muss."

Für etwas Komplexeres sollte es immer noch recht einfach sein, es selbst mit manuell instanziierten Verbindungen innerhalb eines beliebigen Python-Konstrukts zu tun, das zu Ihrem Anwendungsfall passt (Iterieren usw.). In diesem Fall hätten Sie also ein "Meta" Aufgabe, die etwas wie for hostname, kwargs in my_map_of_hostnames_to_kwargs.items(): othertask(Connection(hostname), **kwargs) ausführt.

(Damit bleibt immer noch pyinvoke/invoke#170 oder weniger wahrscheinlich #4, aber im Moment sind beide lösbar.)

Wenn Sie Details zum Anwendungsfall angeben, kann einer von uns vielleicht näher darauf eingehen.


Re: Tutorial: Ja, die Seite "Erste Schritte" ist das Tutorial, das spezifische Bit, das vorgibt, über Group.execute Bescheid zu wissen, ist http://docs.fabfile.org/en/v2/getting_started.html#bringing -it-all -zusammen - aber wie oben, das Verhalten ist noch nicht wirklich durchdacht!

Vielen Dank für dieses v2-Tutorial. Ich hatte die Quelle auf GitHub gefunden, aber es versäumt, darin herumzulesen.

cxn = Connection(host) ist das entscheidende Stück, das mir gefehlt hat; In den Teilen des Tutorials, die ich gefunden hatte, wurde nicht erwähnt, was cxn war, und ich habe nicht genug gegraben, um herauszufinden, dass es sich nur um eine Connection handelte.

Ich habe bereits den Code geschrieben, den ich brauchte, als ich dies mit dem Fabric3-Port gepostet habe, aber mit dem Gedanken, zu v2 zu wechseln, sobald es auf PyPi ist. Danke für eure Zeit Jungs!

Bearbeiten: Es könnte zukünftigen potenziellen Benutzern helfen, wenn Sie hier einen Link zu diesem v2-Tutorial in die README-Datei einfügen. Ich würde es anfordern, aber das scheint ein bisschen viel für eine Änderung in einer Zeile zu sein: p

Kann host nicht automatisch aus der Konfigurationsdatei fabric.json geladen werden, anstatt es an das Argument -D in der Befehlszeile zu übergeben?

Diese Funktion ist für fabric2 dringend benötigt. Hast du eine Idee, wann es zusammengelegt wird?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen