2013-04-28 1 views
1

Я хотел бы назвать «run()» или «sudo()» с тканью для выполнения скрипта на удаленном хосте. Однако, я хочу сделать это изнутри питона, а не из командной строки:Использовать ткань для извлечения кода на удаленном сервере изнутри python

так вместо:

fab.py: 
def do_something(): 
    print "doing something" 
    sudo("my_shell_commandline_to_do_something") 

, а затем:

fab do_something 

Я хочу, чтобы просто позвонить do_something из какой-либо другой программы python. Как это сделать? Как я поставить удаленный IP-адрес хоста, так как Tehre нет файла fabricrc внутри питона

ответ

2

Nevermind, я нашел это сам :)

его (или есть?):

from fabric.operations import sudo 
from fabric.context_managers import settings 

with (settings(host_string=remote_ip_address, 
user='myuser', 
key_filename='/tmp/.ssh/myKey.pem')): 
    sudo('touch a.txt')