我遵循 railscasts 并使用基本配置,例如 image_id: ami-3f32ac3e
(Ubuntu Server 12.04.3 LTS 64 位),,,,app_name: myapp
我app_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
我在谷歌搜索后检查的内容:
它没有发生,因为 Amazon 实例仍在启动。实例启动后,我已经等了很长时间。另外,当我这样做时,我得到了同样的错误
ALIAS=production cap rubber:refresh
我能够通过 ssh 成功登录到这个新实例(提供用户名 as
ubuntu
)。所以,密钥文件没问题。我已经添加了密钥
ssh-add
中的密钥文件。
ec2
目录没有.pem
扩展名。etc/hosts
我的on Amazon 实例中没有重复条目。