Прямой API-интерфейс API-интерфейса в python

Я помню, что API-интерфейс ткани можно вызывать непосредственно в py script но забыл, с чего начать кто-нибудь подскажет?

Ответ 1

Да, вы можете назвать это, например:

from fabric.api import run
from fabric.tasks import execute


def do_something():
    run("echo $RANDOM")

if __name__ == "__main__":
    execute(do_something, hosts=["[email protected]"])

Ответ 2

Существует целый раздел об использовании в документах в качестве библиотеки. Я бы назвал это и как лучше подойти к использованию ткани таким образом.

В частности, вам нужно решить проблему выполнения задачи X в списке хостов Y с помощью функции execute как execute( X, hosts=Y ). Когда все будет готово, вы должны отключиться от всех подключенных хостов. Обычно инструмент fab делает это для вас, но вы должны делать это вручную при использовании ткани в качестве библиотеки. Fabric 0.9.4 и более поздние версии имеют функцию disconnect_all(). В идеале это должно быть в предложении finally оператора try...finally.