我可以使用AWS启动boto Ubuntu EC2实例。有没有人试图将脚本上传到远程Ubuntu EC2(超过1个)并在本地通过SSH执行脚本?
主要目标是使用在localhost上编写的Python脚本自动执行整个过程。是否有其他方法或Amazon api工具可以实现这一目标?
答案 0 :(得分:1)
我建议Fabric,这是为了这种事情。
答案 1 :(得分:0)
使用paramiko API
答案 2 :(得分:0)
这里,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()