В домашнем каталоге пользователя есть 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.
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
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'