использование модуля Python Fabric - PullRequest
0 голосов
/ 03 октября 2019

Попытка использовать модуль Fabric для скрипта Python, который говорит с удаленной машиной, чтобы запускать различные команды. Я планирую использовать ткань в качестве модуля для установки и запуска команд через ssh. Является ли хорошей практикой использование fabric в качестве обычного модуля Python from fabric import Connection и запуск сценария напрямую, например python script.py

Я проверил это, и он отлично работает.

Спасибо

1 Ответ

1 голос
/ 03 октября 2019

Fabric2 - это то, что вам нужно использовать с Python 2.7+. Установите его, запустив pip install fabric2 из командной строки!

Затем создайте fabfile.py со следующим кодом:

@task
def deploy(ctx, env=None):
    try:
        with connection(host=REMOTE_HOST, user=REMOTE_HOST_USERNAME,) as c:
            c.run('whoami')
            c.run('echo "do what you want to do"')
            c.run('mkdir new_dir')
    except AuthenticationException as message:
        print(message)
    except SSHException as message:
        print(message)

Перейдите в каталог, в котором находится fabfile.py, и выполните эту команду из командной строки:

fab deploy 

ОБНОВЛЕНИЕ

Вы можете поместить функцию deploy () внутри main.py

from fabric import Connection as connection, task
from paramiko import AuthenticationException, SSHException


def deploy():
    try:
        with connection(host='faceai-uat', user='admin.peshmerge') as c:
            c.run('whoami')
            c.run('echo "do what you want to do"')
            c.run('mkdir new_dir')
    except AuthenticationException as message:
        print(message)
    except SSHException as message:
        print(message)

def main():
    print("Start deploying")
    deploy()


if __name__ == "__main__":
    main()

Выполнить файл с помощью python3 main.py из командной строки!

...