2

我遵循 railscasts 并使用基本配置,例如 image_id: ami-3f32ac3e(Ubuntu Server 12.04.3 LTS 64 位),,,,app_name: myappapp_user: jashwant尝试使用橡胶进行部署。

一切都很顺利。我现在有一个正在运行的实例,但最后我得到了 Trying to enable root login * 2013-11-09 17:03:33 executing `rubber:_ensure_key_file_present' * 2013-11-09 17:03:33 executing `rubber:_allow_root_ssh' * executing "sudo -p 'sudo password: ' bash -l -c 'mkdir -p /root/.ssh && cp /home/ubuntu/.ssh/authorized_keys /root/.ssh/'" servers: ["54.238.122.222"] ** Failed to connect to 54.238.122.122, retrying * 2013-11-09 17:03:37 executing `rubber:_ensure_key_file_present' * 2013-11-09 17:03:37 executing `rubber:_allow_root_ssh' * executing "sudo -p 'sudo password: ' bash -l -c 'mkdir -p /root/.ssh && cp /home/ubuntu/.ssh/authorized_keys /root/.ssh/'" servers: ["54.238.122.122"]

你可以在这里看到错误

:initial_ssh_user我从这里得出结论,我需要设置config/deploy.rb

我已经看到, set :user, 'root' set :password, nil config/deploy.rb

所以,我添加了set :initial_ssh_user, 'ubuntu'. 但错误仍然是一样的。

如果我set :user, 'root'改为set :user, 'ubuntu',那么我得到 Trying to enable root login * 2013-11-09 17:13:48 executing `rubber:_direct_connection_54.238.122.122_411' * executing "echo" servers: ["54.238.122.122"] ** Failed to connect to 54.238.122.122, retrying

我在谷歌搜索后检查的内容:

  1. 它没有发生,因为 Amazon 实例仍在启动。实例启动后,我已经等了很长时间。另外,当我这样做时,我得到了同样的错误ALIAS=production cap rubber:refresh

  2. 我能够通过 ssh 成功登录到这个新实例(提供用户名 as ubuntu)。所以,密钥文件没问题。

  3. 我已经添加了密钥ssh-add

  4. 中的密钥文件。ec2目录没有.pem扩展名。

  5. etc/hosts我的on Amazon 实例中没有重复条目。

4

1 回答 1

1

事实证明,橡胶无法从私钥中读取。我解决了这个问题,它奏效了。

于 2013-11-10T12:41:02.943 回答