Назад | Перейти на главную страницу

Устранение неполадок, почему один бродяга работает, а другой нет

В домашнем каталоге пользователя есть 2 бродячих проекта. Mac OSX 10.8

Первый экземпляр vagrant был создан несколько месяцев назад, когда пользователь запускал более старую версию (1.1.x), второй экземпляр был создан с версией 1.2.2. (Следовательно, синтаксис бродячих файлов немного отличается)

Проблема в том, что первый экземпляр (более старый) запускается и успешно показывает страницу приветствия apache, когда пользователь переходит на localhost: 8080 с использованием переадресации портов. http://docs.vagrantup.com/v2/networking/forwarded_ports.html

Во втором экземпляре не отображается страница приветствия apache.

Экземпляр 1 (рабочий)

Vagrant::Config.run do |config|

  config.vm.box = "lucid32"
  config.vm.provision :shell, :path => "bootstrap.sh"
  config.vm.network :bridged
  config.vm.forward_port 80, 8080

end

Экземпляр 2 (не работает)

Vagrant.configure("2") do |config|

  config.vm.box = "lucid32"
   config.vm.network :forwarded_port, guest: 80, host: 8080
   config.vm.network :public_network

   config.vm.provision :puppet do |puppet|
     puppet.manifests_path = "manifests"
     puppet.manifest_file  = "init.pp"
     config.vm.hostname = 'salesforce'
   end
end

Я подтвердил следующее:

В обоих экземплярах установлен и запущен apache2.
Я могу запустить curl localhost: 8080 и получить html тестовой страницы apache
У меня всегда работает только 1 экземпляр, чтобы избежать конфликтов с портом 8080
Оба экземпляра привязаны к одной сетевой карте

Что могло помешать переадресации портов на новом экземпляре vagrant?

Экземпляр 1 соединен мостом, а другой использует :public_network. Можете ли вы подключиться к порту 22 в интерфейсе: public_network? (Надеюсь, вы удалили незащищенный ключ и пароль).

Может быть, вам также нужна сеть: host_only?

Разобрался благодаря этому вопросу о стеке. Это был брандмауэр https://stackoverflow.com/questions/5984217/vagrants-port-forwarding-not-working

Убедитесь, что в брандмауэре пробита дыра для порта 80 (или просто отключите iptables)

 service iptables stop

Убедитесь, что curl может получить доступ к тестовой странице apache из виртуальной машины

vagrant ssh
curl -v localhost

Наконец, убедитесь, что Хост может получить доступ к странице через curl

exit
curl -v 'http://localhost:8080'