У меня есть сервер (Debian Squeeze) с 1 сетевой картой и 2 общедоступными статическими IP-адресами (188.120.245.4 и 188.120.244.5).
Что я хочу: Установить виртуальный ящик (Ubuntu) с доступом через статический IP (188.120.244.5).
Что я пытался:
- config.vm.forward_port - хорошая идея: настроить интерфейс "eth1: 1" с 188.120.244.5 на хост-машине и добавить в файл Vagrant "config.vm.forward_port = hmm ..?"
- config.vm.network: hostonly, "188.120.244.5" - не работает. Был создан новый интерфейс на хост-машине с ip "188.120.244.1". Конечно, 188.120.244.1 IP не мой, и я не могу получить доступ к своему серверу через этот IP.
- config.vm.network: bridged - я запутался, как это работает :)
Что у меня сейчас: не рабочая конфигурация.
Debian-host-machine# cat Vagrantfile
Vagrant::Config.run do |config|
config.vm.define :gitlab do |box_config|
box_config.vm.box = "ubuntu"
box_config.vm.host_name = "ubuntu"
box_config.vm.network :bridged
box_config.vm.network :hostonly, "188.120.244.5", :auto_config => false
end
end
Debian-host-machine# ifconfig
eth1 Link encap:Ethernet HWaddr 00:15:17:69:71:bb
inet addr:188.120.245.4 Bcast:188.120.247.255 Mask:255.255.248.0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00
inet addr:188.120.244.1 Bcast:188.120.246.255 Mask:255.255.255.0
Ubuntu-virtual-machine# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:ee:8d:0c
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
eth1 Link encap:Ethernet HWaddr 08:00:27:45:71:87
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
Как я могу получить доступ к виртуальной коробке через публичный статический IP из сети?
Я использую Oracle VM VirtualBox Manager 4.1.18 и Vagrant версии 1.0.3.
Заранее спасибо за ваш отзыв.
networking
routing
nat
vagrant
Numbata
источник
источник
Ответы:
Начиная с версии 1.3.0:
Вы просто должны поместить эту конфигурацию в свой Vagrantfile (документация) :
Эта вещь Бродяги действительно велика :-)
источник
Через две недели я решил свой вопрос следующим образом:
Поваренная книга генерирует Vagrantfile из шаблона:
Для rebuild-iptables необходимо сгенерировать и применить правила iptables:
И:
Теперь я могу устанавливать приложения в коробку и подключаться к ним через общедоступный статический ip без настройки «port_forwarding» (как на VPS).
источник
Что вам действительно нужно, так это мостовой интерфейс со статическим IP. К сожалению, vagrant пока не поддерживает это (см. Обсуждение здесь ).
Во-первых, установите box_config.vm.network: bridged, так как вам нужен virtualbox для создания мостового интерфейса, и вы можете удалить box_config.vm.network: hostonly.
Вы можете использовать инициализацию оболочки для переконфигурирования сети с вашим IP, но вы не можете изменить файл / etc / network / interfaces, иначе виртуальная машина не сможет вернуться, если вы прекратите работу vagrant (попытка выполнить vagrant up и перенастроить сетевые интерфейсы, и он умрет, если вы изменили этот файл).
Таким образом, альтернативой является создание сценария в /etc/network/if-up.d/, который переустанавливает IP для интерфейса. Не идеально, но я еще не нашел лучшего решения!
Смотрите соответствующие разделы конфигурации ниже. В скрипте bash вы должны установить IP / маску сети, шлюз и DNS (и номер интерфейса, если у вас другой, это должен быть eth1, хотя, если вы только что установили мостовое соединение в Vagrantfile).
Итак, когда вы в первый раз делаете vagrant и создаете виртуальную машину, он создает скрипт /etc/network/if-up.d/custom-network-config, который устанавливает конфигурацию IP, маршрутизацию и перезапускает apache (вам потребуется измените это, если вы используете другие службы, которые полагаются на конфигурацию сети), и это устанавливает DNS.
Затем, если вы снова выполните vagrant, когда виртуальная машина уже существует (например, после выполнения vagrant halt), все, что она делает, это перезапускает сетевые интерфейсы, чтобы скрипт запускался и интерфейс настраивался (по какой-то причине я обнаружил, что скрипт не был выгнан выключен, когда виртуальная машина была включена, и интерфейсы появились изначально - не уверен, почему).
Vagrantfile
vagrant-setup.sh
источник