有没有办法使用Capistrano部署到流浪汉?

时间:2012-04-27 15:33:03

标签: ruby-on-rails deployment capistrano vagrant

我想在项目目录之外设置一个vagrant实例。有没有办法使用capistrano将rails部署到vagrant VM中,就像我对真正的生产主机一样?

我正在尝试将服务器用作“localhost”,但我得到:

connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2))

2 个答案:

答案 0 :(得分:19)

您也可以将Vagrant的SSH选项提供给Capistrano(大多数:ssh_options直接转到Net :: SSH,http://net-ssh.github.com/ssh/v1/chapter-2.html,请参阅“选项”)这样就没有必要弄乱你的真实了〜 /.ssh/config

set :user, 'vagrant'
set :ssh_options, {port: 2222, keys: ['~/.vagrant.d/insecure_private_key']}

role :web, "localhost" 
...

(当然,除非适当防火墙,否则你不应该使用insecure_private_key或默认的root / vagrant密码,但原则保持不变。)

答案 1 :(得分:14)

我明白了。如果其他人想知道:

  1. 我创建了一个单独的文件夹并在那里完成了整个Vagrant初始化。
  2. 我将Vagrant文​​件配置为使用桥接网络。
  3. 我已登录我的虚假VM($ vagrant ssh)并运行ifconfig以获取我的IP地址。
  4. 我将该IP地址添加到我的Capistrano部署文件中。
  5. 我将流浪汉ssh信息传递给我当地的配置:vagrant ssh-config >> ~/.ssh/config
  6. 我运行部署,当提示输入SSH密码时,我使用了vagrant
  7. 有效。