引数のあるタスクがあります。 別のPythonスクリプト内から、ホストに応じてタスクの引数を変えて、ホストのグループでこのタスクを実行したいと思います。
execute
内のコメントは、チュートリアルに従って実装することを示しています。 このチュートリアルへのリンクを取得できますか? そして、私がそれを機能させる/引数を渡して機能させる場合、これは歓迎されるプルリクエストでしょうか?
これはFabric2チュートリアルに最も近いものだと思います: //docs.fabfile.org/en/stable/getting_started.html
別のPythonスクリプト内から、ホストに応じてタスクの引数を変えて、ホストのグループでこのタスクを実行したいと思います。
正確なユースケースがわからず、Groupがまだ十分に具体化されていないことに注意してください(接続を良好な状態にすることに重点が置かれています)。これまでのところ、Groupはコンビニエンス/ラッパーAPIとして考えられています。のみ-「ホスト名のリストと実行することを提供し、独自のループを作成しなくても、あなたがそれを実行してくれる」という一般的なケースです。
より複雑なものについては、Python構造がユースケースに適合するもの(反復など)内で手動でインスタンス化された接続を使用して自分で行うのは非常に簡単である必要があります。したがって、この場合、「メタ」があります。 for hostname, kwargs in my_map_of_hostnames_to_kwargs.items(): othertask(Connection(hostname), **kwargs)
ようなものを実行するタスク。
(それでもpyinvoke / invoke#170、または可能性は低いですが#4のままですが、現時点では両方とも回避可能です。)
ユースケースの詳細を提供していただければ、私たちの1人がさらに詳しく説明できるかもしれません。
Re:チュートリアル:はい、「はじめに」ページはチュートリアルです。Group.executeについて知っているふりをする特定のビットはhttp://docs.fabfile.org/en/v2/getting_started.html#bringing-it-allです。 -一緒に-しかし、上記のように、動作はまだ実際には考えられていません!
このv2チュートリアルをありがとうございました。 私はGitHubでそのソースを見つけましたが、それについて読むことを怠りました。
cxn = Connection(host)
は、私が見逃していた重要なビットです。 私が見つけたチュートリアルの部分では、cxnが何であるかについては言及されておらず、それが単なる接続であると理解するのに十分なほど掘り下げていませんでした。
Fabric3ポートを使用してこれを投稿したときに必要なコードをすでに作成しましたが、PyPiにインストールされたらv2に移行することを念頭に置いてください。 お時間をいただきありがとうございます!
編集:そのv2チュートリアルへのリンクをここのREADMEに追加すると、将来の潜在的なユーザーに役立つ可能性があります。 私はそれをプルリクエストしますが、それは1行の変更には少し多いようです:p
host
コマンドラインの-D
引数に渡す代わりに、 fabric.json
ファイルから自動的にロードすることはできませんか?
この機能はFabric2に非常に必要です。 それがいつマージされるかについて何か考えはありますか?
最も参考になるコメント
この機能はFabric2に非常に必要です。 それがいつマージされるかについて何か考えはありますか?