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

Две Vagrant VM не могут пинговать друг друга

Цель - Пинговать друг друга; общаться друг с другом

Проблема - Не могут пинговать друг друга; общаться друг с другом

На виртуальной машине CentOS у меня отключен auto_config, потому что у Vagrant возникли проблемы с автоматическим изменением IP-адреса для меня. Поэтому я заставил Vagrant распознавать его как 10.0.2.100, а затем вручную изменил сеть на виртуальной машине.

На виртуальной машине Windows Vagrant по умолчанию установил IP-адрес 10.0.2.15.

# -*- mode: ruby -*-
# vi: set ft=ruby :

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

  config.vm.define "master" do |master|
    master.vm.box = "centos/7"
    master.vm.network "private_network", ip: "10.0.2.100", auto_config: false
    master.vm.box      = "centos_7_v2"
    master.vm.hostname = "master.local.com"
    master.vm.provider "virtualbox" do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    end
  end

  config.vm.define "nodeone" do |nodeone|
    nodeone.vm.box = "windows_2012_r2_standard"
    nodeone.vm.hostname = "nodeone.local.com"
    nodeone.vm.provider "virtualbox" do |v|
      v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    end
  end

end

У меня есть конфигурация --natdnshostresolver1, добавленная к обеим виртуальным машинам, а затем добавлено следующее в мой собственный файл hosts (на моем Mac).

10.0.2.15 nodeone.local.com
10.0.2.100 master.local.com

Как заявил @ jeffrey-wen, решение состоит в том, чтобы добавить virtual_box__intnet: true в файл инвентаризации. Следует отметить, что при этом у вас могут возникнуть проблемы с пингом или sshing в ваших Vagrant-ящиках, которые теперь находятся в новой локальной сети (как подробно описано в этом выпуске Ansible).

Решением для меня было добавить -c local к любой команде, которую я выполнял. -c информирует Ansible о типе подключения и по умолчанию smart что иногда работает некорректно.

Извините за то, что разместил это в качестве ответа - у меня еще недостаточно репутации, чтобы опубликовать это как комментарий ¯ \ _ (ツ) _ / ¯

Я наконец-то понял. По-видимому, вы просто устанавливаете IP-адрес в той же подсети, а затем добавляете и следуете virtualbox__intnet: true настройка на https://www.vagrantup.com/docs/virtualbox/networking.html

# Master
master.vm.network "private_network", ip: "192.168.50.100",
  virtualbox__intnet: true

# Node
nodeone.vm.network "private_network", ip: "192.168.50.110",
  virtualbox__intnet: true