[英]Failing to connect to ec2 using Rubber
我正在嘗試使用Rubber gem將我的Rails應用程序上傳到Amazon ec2(我正在關注Railscasts教程 )。 每次我運行cap rubber:create_staging
我都無法連接到服務器。 我一直在嘗試所有可能的方法來使它正常工作,但是經過一整天的嘗試,我認為我會發布此處發生的情況。
Andrews-MacBook-Pro:blog andrew$ cap rubber:create_staging
Respawning with 'bundle exec'
triggering load callbacks
* 2013-01-03 17:27:20 executing `rubber:init'
* 2013-01-03 17:27:23 executing `rubber:create_staging'
Hostname to use for staging instance [production]:
Roles to use for staging instance [apache,app,collectd,common,db:primary=true,elasticsearch,examples,graphite_server,graphite_web,graylog_elasticsearch,graylog_mongodb,graylog_server,graylog_web,haproxy,mongodb,monit,passenger,postgresql,postgresql_master,web,web_tools]:
* 2013-01-03 17:27:26 executing `rubber:create'
* Security Group already in cloud, syncing rules: blog_production_production
* Security Group already in cloud, syncing rules: blog_production_graylog_mongodb
* Security Group already in cloud, syncing rules: blog_production_mongodb
* Security Group already in cloud, syncing rules: blog_production_postgresql
* Security Group already in cloud, syncing rules: blog_production_postgresql_master
* Security Group already in cloud, syncing rules: blog_production_db
* Security Group already in cloud, syncing rules: blog_production_app
* Security Group already in cloud, syncing rules: blog_production_web
* Security Group already in cloud, syncing rules: blog_production_haproxy
* Security Group already in cloud, syncing rules: blog_production_elasticsearch
* Security Group already in cloud, syncing rules: blog_production_monit
* Security Group already in cloud, syncing rules: blog_production_common
* Security Group already in cloud, syncing rules: blog_production_default
* Security Group already in cloud, syncing rules: blog_production_graylog_elasticsearch
* Security Group already in cloud, syncing rules: blog_production_apache
* Security Group already in cloud, syncing rules: blog_production_passenger
* Security Group already in cloud, syncing rules: blog_production_examples
* Security Group already in cloud, syncing rules: blog_production_graphite_web
* Security Group already in cloud, syncing rules: blog_production_graphite_server
* Security Group already in cloud, syncing rules: blog_production_graylog_server
* Security Group already in cloud, syncing rules: blog_production_collectd
* Security Group already in cloud, syncing rules: blog_production_graylog_web
* Security Group already in cloud, syncing rules: blog_production_web_tools
** Creating instance ami-eafa5883/m1.small/blog_production_default,blog_production_web,blog_production_web_tools,blog_production_production,blog_production_apache,blog_production_app,blog_production_passenger,blog_production_collectd,blog_production_common,blog_production_monit,blog_production_db,blog_production_postgresql,blog_production_postgresql_master,blog_production_elasticsearch,blog_production_examples,blog_production_graphite_server,blog_production_graphite_web,blog_production_graylog_elasticsearch,blog_production_graylog_mongodb,blog_production_mongodb,blog_production_graylog_server,blog_production_graylog_web,blog_production_haproxy/Default
** Instance production created: i-7b4f840a
Waiting for instances to start..........................
** Instance running, fetching hostname/ip data
* 2013-01-03 17:28:37 executing `rubber:_allow_root_ssh'
* executing "sudo -p 'sudo password: ' bash -l -c 'cp /home/ubuntu/.ssh/authorized_keys /root/.ssh/'"
servers: ["23.20.130.97"]
.... ** Failed to connect to 23.20.130.97, retrying
* 2013-01-03 17:28:44 executing `rubber:_allow_root_ssh'
* executing "sudo -p 'sudo password: ' bash -l -c 'cp /home/ubuntu/.ssh/authorized_keys /root/.ssh/'"
servers: ["23.20.130.97"]
. ** Failed to connect to 23.20.130.97, retrying
* 2013-01-03 17:28:46 executing `rubber:_allow_root_ssh'
* executing "sudo -p 'sudo password: ' bash -l -c 'cp /home/ubuntu/.ssh/authorized_keys /root/.ssh/'"
servers: ["23.20.130.97"]
. ** Failed to connect to 23.20.130.97, retrying
* 2013-01-03 17:28:49 executing `rubber:_allow_root_ssh'
* executing "sudo -p 'sudo password: ' bash -l -c 'cp /home/ubuntu/.ssh/authorized_keys /root/.ssh/'"
servers: ["23.20.130.97"]
etc
然后似乎陷入無限循環,並嘗試每隔幾分鍾就連接到服務器。
編輯:我終於通過在我的本地計算機上重新安裝ruby + gems解決了這個問題。 仍然不確定是什么原因造成的。
這實際上是因為在EC2上創建實例時,即使實例已創建(並且您可以在AWS管理控制台上看到綠燈),仍然需要花費一些時間來傳播IP地址,以便可以從部署計算機訪問該IP地址。
解決方案實際上是等待幾分鍾,因為它最終將連接。
我遇到了類似的錯誤,但通過重命名私鑰進行了修復,因此它沒有.pem擴展名。 橡膠常見問題解答對此做了一些引用。
https://github.com/rubber/rubber/wiki/常見問題解答
我進行此更改后,它起作用了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.