使用Rubber将Rails应用程序部署到AWS / EC2

时间:2012-01-16 17:16:56

标签: ruby-on-rails ruby-on-rails-3 deployment amazon-web-services capistrano

我有一个关于使用Rubber gem将Rails应用程序部署到EC2的问题。当我开始跑步时

  

cap rubber:create_staging

这行代码在循环中运行。

  

执行`rubber:_allow_root_ssh'      执行“sudo -p”sudo密码:'bash -l -c'cp /home/ubuntu/.ssh/authorized_keys /root/.ssh/'“       服务器:[“witheld”]   。无法连接到witheld,正在重试

我认为这可能是我的密钥对的问题。 就我的键名而言,我在config / rubber文件夹中有一个名为keyname(纯文本文件)的当前私钥和一个名为keyname.pub的公钥。我的rubber.yml文件列出了

  

key_name:keyname

     

key_file:“#{Dir [(File.expand_path('〜')rescue' / root')+'/.ec2 / *'+ cloud_providers.aws.key_name] .first}”

我很确定所有其他信息都是正确的,但我显然无法将其复制并粘贴。有任何建议吗?

1 个答案:

答案 0 :(得分:1)

您的密钥应位于〜/ .ec2 /文件夹中,而不是在config / rubber文件夹中。还要确保从私钥文件中删除.pem扩展名,并且.pub保留在您的公共文件中。 还要在rubber.yml文件中更改key_name:[此处的私钥文件名]。

根据你的key_file:settings,rubber会在〜/ .ec2文件夹中查找这些键。所以把它们移到那里。