Я помню, что API-интерфейс ткани можно вызывать непосредственно в py script но забыл, с чего начать кто-нибудь подскажет?
Прямой API-интерфейс API-интерфейса в python
Ответ 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
.