【问题标题】:Is there a way to deploy into a vagrant VM using Capistrano?有没有办法使用 Capistrano 部署到 vagrant VM 中?
【发布时间】:2012-05-08 08:56:51
【问题描述】:

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

我正在尝试将服务器用作“本地主机”,但我得到了:

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

【问题讨论】:

    标签: ruby-on-rails deployment capistrano vagrant


    【解决方案1】:

    您还可以将 Vagrant 的 SSH 选项提供给 Capistrano(大部分 :ssh_options 直接转到 Net::SSH,http://net-ssh.github.com/ssh/v1/chapter-2.html,请参阅“选项”),因此无需弄乱您的真实 ~/.ssh/配置

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

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

    【讨论】:

      【解决方案2】:

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

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

      成功了。

      【讨论】:

      • 您也可以使用仅主机网络。两个优点。一、可以分配ip地址,不用每次都查。第二,机器无法访问整个网络。否则说明将是相同的。
      猜你喜欢
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      相关资源
      最近更新 更多