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

2024-05-16

我有一个包含 3 个虚拟机的多虚拟机 vagrantfile 设置。 其中两个虚拟机的 NAT 网络接口已禁用,并且仅在内部接口上使用静态 IP。

副作用是我无法再跑步vagrant ssh foo连接到虚拟机。

# -*- 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

这个线程 https://groups.google.com/forum/#!topic/vagrant-up/HwqFegoCXOc在 vagrant 用户组中,给了我检查的想法默认流浪者配置 https://github.com/mitchellh/vagrant/blob/master/config/default.rb.

我已经尝试过以下每一项,但没有运气

 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

Running vagrant up在启动过程中挂起,导致我必须等待 300 秒才能启动每个虚拟机。

错误信息

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 https://github.com/spuder/flatmate-firewall/blob/master/Vagrantfile


我可以在 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:~$

与“应用程序机器”相同

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:~$

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vagrant - 使用私有接口时如何配置 vagrant ssh? 的相关文章

随机推荐