Запуск Fabric с Python script вместе

Я вижу, что большинство API Fabric используются вместе с функцией.

Пример файла (sample.py):

from fabric.api import *
print "Hello"

def deploy():
    with settings(hosts_string="Remote", user = "ubuntu", key_filename="/home/ubuntu/key.pem"):
        put('/home/localuser/sample.sh', '/home/ubuntu/')
        run('bash /home/ubuntu/sample.sh')

Я запускаю команду для выполнения

fab deploy

Можно ли запустить Fabric в основном методе. Поэтому, когда я запускаю его как python script, будет выполняться трюк.

python ./sample.py

Спасибо!

Ответ 1

Чтобы ответить на ваш вопрос напрямую, вы можете добавить этот фрагмент в свой файл:

from fabric.api import *
print "Hello"

def deploy():
    with settings(host_string="Remote", user = "ubuntu", key_filename="/home/ubuntu/key.pem"):
        put('/home/localuser/sample.sh', '/home/ubuntu/')
        run('bash /home/ubuntu/sample.sh')

if __name__ == '__main__':
   deploy()

Теперь, когда вы запустите python ./sample.py, он будет делать то же самое, что fab deploy

Однако fab позволяет вам выполнять гораздо больше, чем ваш простой пример. Дополнительную информацию об гибкости команды fab см. В fab documentation.

Ответ 2

Вы должны дать команду выполнения ткани. В самом низу выполните (развернуть)