Я хотел бы использовать Fabric в качестве инструмента для сбора всех нагрузок на сервер и последующей обработки значений, я подумал о чем-то вроде этого:
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 напрямую, как это было предложено здесь подталкивает меня к написанию собственного модуля, который абстрагирует его - цитируя сайт фабрики, это именно то, что ткань должна сделать для меня:
В дополнение к использованию через fab fool, компоненты Fabric могут быть импортированы в другой код Python, предоставляя Pythonic интерфейс для набора протоколов SSH на более высоком уровне, чем, например, предоставляемый, например, Парамико (которую сама ткань использует.)