Vagrant - 如何在使用私有接口时配置vagrant ssh?

 999欢_879 发布于 2023-02-06 13:12

我有一个3 varms的multivm vagrantfile设置.其中两个虚拟机的NAT网络接口已禁用,仅在内部接口上使用静态IP.

副作用是我不再能够vagrant ssh foo连接到vm了.

# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  #config.vm.box = "PuppetlabsCent64"
  #config.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210-nocm.box"
  config.vm.box = "Debian-7-2"
  config.vm.box_url= "https://dl.dropboxusercontent.com/u/197673519/debian-7.2.0.box"
  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  # config.vm.network :private_network, ip: "192.168.45.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  # config.vm.network :public_network

  config.vm.synced_folder ".", "/vagrant_data"

  config.vm.provider :virtualbox do |vb|
   vb.customize ["modifyvm", :id, "--memory", "512"]
  end

     config.vm.define "r", primary: true  do |router|
       router.vm.box = "Debian-7-2"
       router.vm.network :private_network, ip: "192.168.45.11"

     end

     config.vm.define "r1" do |roomate1|
       roomate1.vm.box = "Debian-7-2"
       roomate1.vm.network :private_network, ip: "192.168.45.12"
     end

     config.vm.define "r2" do |roomate2|
       roomate2.vm.box = "Debian-7-2"
       roomate2.vm.network :private_network, ip: "192.168.45.13"
     end

   config.vm.provider :virtualbox do |vb|
     vb.customize "post-boot",["controlvm", :id, "setlinkstate1", "off"]
   end

end

vagrant用户组中的这个线程让我想到了检查默认的vagrant配置.

我试过以下每一个都没有运气

 config.vm.define "r", primary: true  do |router|
   router.vm.box = "Debian-7-2"
   router.vm.network :private_network, ip: "192.168.45.11"
   #config.ssh.host "192.168.45.11"
   #router.vm.network :forwarded_port, host: "192.168.45.11"
   #router.vm.box_url = "192.168.45.11"
   #router.vm.boot_timeout = 200
   #router.vagrant.host = "192.168.45.11"
   #router.ssh.host = "192.168.45.11"
 end

#non working 
sowen@pv-sowen-nb:~/Code/flatmate-firewall$ vagrant ssh-config r
Host r
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/sowen/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

运行vagrant up在启动过程中部分挂起,导致我必须等待300秒才能启动每个vm.

错误消息

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period. This can
mean a number of things.

If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.

有没有办法配置vagrant ssh使用正确的IP和端口,以便它不会超时?

资料来源:https://github.com/spuder/flatmate-firewall/blob/master/Vagrantfile

1 个回答
  • 我可以在你的Vagrantfile中看到你的问题,但我用两台机器向你展示了我的例子.

    VAGRANTFILE_API_VERSION = "2"
    
    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
      # All Vagrant configuration is done here. The most common configuration
      # options are documented and commented below. For a complete reference,
      # please see the online documentation at vagrantup.com.
    
      config.vm.define 'app' do |app_config|
        app_config.vm.box = 'ubuntu_app'
        app_config.vm.host_name = 'app'
        app_config.vm.network "private_network", ip: "192.168.33.33"
      end
    
      config.vm.define 'web' do |web_config|
        web_config.vm.box = 'ubuntu_app'
        web_config.vm.host_name = 'web'
        web_config.vm.network "private_network", ip: "192.168.33.34"
      end
    end
    

    然后我用标准的ssh连接连接到"web"机器

    roberto@rcisla-pc:~/Desktop/vagrant$ ssh vagrant@web -p 22
    Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686)
    
     * Documentation:  https://help.ubuntu.com/
    Welcome to your Vagrant-built virtual machine.
    Last login: Sun Jan 12 13:18:18 2014 from 192.168.33.1
    vagrant@web:~$
    

    等于"app机器"

    roberto@rcisla-pc:~/Desktop/vagrant$ ssh vagrant@app -p 22
    Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686)
    
     * Documentation:  https://help.ubuntu.com/
    Welcome to your Vagrant-built virtual machine.
    Last login: Sun Jan 12 13:18:18 2014 from 192.168.33.1
    vagrant@app:~$
    

    我希望这有帮助.

    2023-02-06 13:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有