0

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

我可以使用 Psychopg 创建数据库。但在同一个脚本中,我想执行以下操作:

- do a deploy using capistrano from local machine

我在研究中遇到了 paramiko - SSHClient。我觉得可以用。但我不确定如何从 EC2 实例通过 SSH 连接到本地机器。我找到了我的 IP(比如 abcd)并尝试ssh a.b.c.d了 EC2 实例,但它说:

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

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

4

1 回答 1

1

一方面, paramiko 有点低级,你可以尝试使用Fabric,它会让很多事情变得更容易。

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

  • 可从 Internet 访问,即具有公共 IP 地址
  • 运行 SSH(假设你运行*NIX-like OS,运行ps -ef | grep sshd,如果你看到一个匹配的进程,那么你应该能够连接)

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

于 2013-10-30T09:24:08.017 回答