すべてのサーバー負荷を収集し、後で値を処理するためのツールとしてファブリックを使用したいのですが、次のように考えました。
from fabric.api import run
for servername in servernames:
load_str = run('cat /proc/loadavg | cut -d' ' -f1', host=servername)
しかし、ファブリックではこの方法でホスト名を指定することはできません。私はこの IMO 醜い方法を見つけました:
from fabric.api import env, run
for servername in servernames:
env.host_string = servername
load_str = run('cat /proc/loadavg | cut -d' ' -f1')
もっとエレガントな方法はありますか?
ここで提案されているように、paramiko を直接使用すると、それを抽象化する独自のモジュールを作成する必要があります。fabric の Web サイトからの引用です。
ファブ フールを介して使用することに加えて、Fabric のコンポーネントを他の Python コードにインポートして、Paramiko (Fabric 自体が利用する) などによって提供されるものよりも高いレベルで SSH プロトコル スイートへの Python インターフェイスを提供することができます。