我能夠啓動AWS Ubuntu EC2實例boto。有沒有人試圖將腳本上傳到遠程Ubuntu EC2(多於1個),並通過SSH在本地執行腳本?亞馬遜網絡服務/ Boto:通過本地主機上的SSH上傳並執行遠程python/bash腳本
主要目標是使用寫在本地主機上的Python腳本自動執行整個過程。有沒有其他方法或亞馬遜API工具使這成爲可能?
我能夠啓動AWS Ubuntu EC2實例boto。有沒有人試圖將腳本上傳到遠程Ubuntu EC2(多於1個),並通過SSH在本地執行腳本?亞馬遜網絡服務/ Boto:通過本地主機上的SSH上傳並執行遠程python/bash腳本
主要目標是使用寫在本地主機上的Python腳本自動執行整個過程。有沒有其他方法或亞馬遜API工具使這成爲可能?
使用paramiko API
我建議Fabric,它是由對這種事情。
這裏,代碼的paramiko在遠程AWS EC2 Python來執行:
import paramiko
sftp, transport= None, None, None
try:
if keyfilepath=='': keyfilepath= AWS_KEY_PEM
if keyfiletype == 'DSA': key = paramiko.DSSKey.from_private_key_file(keyfilepath)
else: key = paramiko.RSAKey.from_private_key_file(keyfilepath)
if contype== 'sftp' :
transport = paramiko.Transport((host, port))
transport.add_server_key(key)
transport.connect(None, username, pkey=key)
sftp = paramiko.SFTPClient.from_transport(transport)
if isprint : print('Root Directory :\n ', sftp.listdir())
return sftp
except Exception as e:
print('An error occurred creating client: %s: %s' % (e.__class__, e))
if sftp is not None: sftp.close()
if transport is not None: transport.close()
if ssh is not None: ssh.close()