あなたの特定のアプリケーションには(私のように)独自の癖があると思いますが、これはあなたを正しい道に導くかもしれません。以下は、paramiko上に構築されたFabricを使用してリモートEC2インスタンスにファイルを配置するために使用するスクリプトの短いスニペットです。また、Fabricには独自の「sudo」クラスがあるため、sudoコマンドを配置した場所にも注意してください。これは私が言及していたそれらの癖の1つです。これが誰かを助けることを願っています。
from fabric.api import env, run, put, settings, cd
from fabric.contrib.files import exists
'''
sudo apt-get install fabric
Initially setup for interaction with an AWS EC2 instance
At the terminal prompt run:
fab ec2 makeRemoteDirectory changePermissions putScript
'''
TARGETPATH = '/your/path/here'
def ec2():
env.hosts = ['your EC2 Instance or remote address']
env.user = 'user_name'
env.key_filename = '/path/to/your/private_key.pem'
def makeRemoteDirectory():
if not exists('%s'%TARGETPATH):
run('sudo mkdir %s'%TARGETPATH)
def changePermissions():
run('sudo chown -R %(user)s:%(user)s %(path)s'%{'user': env.user, 'path': TARGETPATH})
def putScript():
fileName = '/path/to/local/file'
dirName = TARGETPATH
put(fileName, dirName)