python:如何从EC2实例在本地计算机上运行命令

时间:2013-10-30 09:08:52

标签: python amazon-ec2

我正在尝试使用python脚本自动化从生产转储创建postgres数据库的过程。我在承载RoR应用服务器的EC2实例上运行此脚本。

我可以使用psychopg创建数据库。但是在同一个脚本中我想做以下事情:

- do a deploy using capistrano from local machine

我在研究中遇到了paramiko - SSHClient。我认为它可以使用。但我不确定如何从EC2实例SSH到本地计算机。 我发现了我的IP(比如a.b.c.d)并尝试了来自EC2实例的ssh a.b.c.d,但它说:

ssh: connect to host a.b.c.d port 22: Connection refused

所以我的问题是: - 如果此方法(使用paramiko)正确,如何设置从EC2实例到本地计算机的ssh连接 要么 如果paramiko无法实现这一点,我如何从EC2实例上的脚本运行部署

1 个答案:

答案 0 :(得分:1)

首先,paramiko有点低级,你可以尝试使用Fabric,它会让很多东西变得更容易。

其次,检查您的本地机器是否

  • 可从互联网访问,即具有公共IP地址
  • 运行SSH(假设您运行*类似NIX的操作系统,运行ps -ef | grep sshd, 如果你看到一个进程匹配,那么你应该可以连接)

然后,如果您想在 EC2实例上自动创建postgres数据库,为什么还需要从它连接到本地计算机。扭转这一进程不是更合乎逻辑吗?即SSH 本地计算机到EC2实例。