Хост - Windows 8.1; провайдер - VirtualBox 4.3.4; Версия Vagrant - 1.3.5.

Хост имеет только одну проводную сетевую карту с IP 192.168.1.100.

Vagrantfiles читает:

  config.vm.box = "precise64"
  config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box"

  config.vm.network :forwarded_port, guest: 80, host: 8080

  config.vm.provision :puppet do |puppet|
    puppet.manifests_path = "puppet/manifests"
    puppet.module_path = "puppet/modules"
    puppet.manifest_file  = "init.pp"
    puppet.options="--verbose --debug"

Однако после vagrant up виртуальная машина получает полностью неправильный IP-адрес. ifconfig для гостя гласит:

vagrant@vagrant-ubuntu-precise-64:~$ ifconfig                   
eth0      Link encap:Ethernet  HWaddr 08:00:27:1a:b6:5e         
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.25
          inet6 addr: fe80::a00:27ff:fe1a:b65e/64 Scope:Link    
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1    
          RX packets:356 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:239 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000                          
          RX bytes:38937 (38.9 KB)  TX bytes:33157 (33.1 KB)    

Почему Vagrant полностью игнорирует настройку переадресации портов в vagrantfile? IP-адрес должен быть 192.168.1.x, а вместо этого я получаю случайный 10.0.2.15. Любые идеи?

Изменить: Хост не может даже пинговать 10.0.2.15. Нет ответа, даже когда виртуальная машина включена. Что-то очень сломано.

Изменить 2: теперь я получаю /sbin/ip addr flush dev eth1 2> /dev/null в двух разных системах. Аргх.

5
ezuk 10 Янв 2014 в 16:58

2 ответа

Лучший ответ

Ssh в машину

Удаляем файл /etc/udev/rules.d/70-persistent-net.rules

Выйти из машины

Сделайте "бродячую перезагрузку"

Думаю, это решит проблему =]

9
jonathanglima 12 Фев 2014 в 18:13

Перенаправление портов означает, что пакеты, полученные на указанном порту, будут перенаправлены гостю. в вашем примере localhost: 8080 должен быть перенаправлен на службу vm, прослушивающую порт 80 vm.

Что касается «случайного» 10.0.2.15, обычно этот IP назначается гостю, если виртуальная машина настроена с подключением NAT, это означает, что гость абсолютно невидим извне (кроме переадресации портов, но этот доступ возможен только через хост). И, конечно, вы не можете пинговать гостя с хоста только в противоположном направлении (от гостя к хосту).

1
vvlevchenko 12 Янв 2014 в 02:40