【问题标题】:Amazon Web Service/Boto: Upload and execute remote python/bash script via SSH on localhostAmazon Web Service/Boto:在 localhost 上通过 SSH 上传和执行远程 python/bash 脚本
【发布时间】:2016-12-27 14:47:28
【问题描述】:

我可以使用boto 启动AWS Ubuntu EC2 实例。有没有人尝试将脚本上传到远程 Ubuntu EC2(多于 1 个)并在本地通过 SSH 执行脚本?

主要目标是使用在 localhost 上编写的 Python 脚本自动化整个过程。是否有替代方法或 Amazon api 工具可以实现这一点?

【问题讨论】:

    标签: python ubuntu ssh amazon-web-services boto


    【解决方案1】:

    我推荐Fabric,它就是为这种事情而设计的。

    【讨论】:

      【解决方案2】:

      使用paramiko API

      【讨论】:

        【解决方案3】:

        这里,要在远程 AWS EC2 Python 中执行的 Paramiko 代码:

        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()
        

        【讨论】:

          猜你喜欢
          • 2011-05-09
          • 2012-01-12
          • 2014-08-29
          • 2018-03-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-27
          • 2021-06-15
          相关资源
          最近更新 更多