Как настроить кластер виртуальных машин VirtualBox?

Я пытаюсь иметь 3 виртуальных машины VirtualBox, работающих одновременно на одном хосте (хост Windows, гость Ubuntu), поэтому я могу тестировать запущенные кластеры различных служб.

проблема в том, что я не могу правильно настроить сетевую конфигурацию виртуальных машин VirtualBox.

Мне нужен:
1) все три гостя имеют доступ в интернет
2) все три гостя могут получить доступ к хозяину отдельно ,и хозяин может получить доступ ко всем трем гостям отдельно (т. е. каждый хост имеет свой уникальный IP, как если бы они были полностью независимые сервера)

Я не могу заставить это работать. Я пытаюсь с двумя сетевыми адаптерами на каждой коробке, одним NAT (для доступа в интернет) и другой сетью только для хоста (для связи с хостом). У меня это вроде как работает, хотя это хит или беспорядок.. иногда, когда гости загружаются, они отказываются активировать одно из двух соединений, застревая на "начальное задание работает для сетевых интерфейсов повышения" линия в загрузке, тогда один из интерфейсов не делает начать. Когда это действительно работает, однако, все три гостя заканчиваются с точным тем же IP-адресом на обоих интерфейсах. И да, я проверил-у них разные MAC-адреса.

Как я могу это исправить, и три гостя последовательно преуспевают в настройке своих сетей и имеют все три со своими собственными IP-адресами, все еще гарантируя, что все три гостя могут получить доступ к интернету?

12
задан user1072692
08.11.2022 9:08 Количество просмотров материала 3444
Распечатать страницу

1 ответ

серьезно, используйте Vagrant для этого. Он прекрасно справляется со вторым сетевым адаптером. Вот пример Vagrantfile, который я использую с docker swarm:

$prepare_swarm_manager_script = <<SCRIPT
<<<shell commands>>>
SCRIPT

$prepare_swarm_node_script = <<SCRIPT
<<<shell commands>>>
SCRIPT

Vagrant.configure(2) do |config|
  config.vm.define "swarm_manager" do |config|
    config.vm.box = "ubuntu/xenial64"
    config.vm.hostname = "swarm-manager"
    config.vm.network "private_network", ip: "10.0.7.11"
    config.vm.provision "shell", inline: $prepare_swarm_manager_script
  end

  config.vm.define "swarm_node1" do |config|
    config.vm.box = "ubuntu/xenial64"
    config.vm.hostname = "swarm-node1"
    config.vm.network "private_network", ip: "10.0.7.12"
    config.vm.provision "shell", inline: $prepare_swarm_node_script
  end

  config.vm.define "swarm_node2" do |config|
    config.vm.box = "ubuntu/xenial64"
    config.vm.hostname = "swarm-node2"
    config.vm.network "private_network", ip: "10.0.7.13"
    config.vm.provision "shell", inline: $prepare_swarm_node_script
  end

команды оболочки выполняются как пользователь ubuntu (поэтому используйте sudo). Тогда вперед vagrant up и выпить пива.

но ключевая информация здесь заключается в том, что вы добавляете сетевой адаптер только для хоста перед каждой установкой виртуальной машины и в глобальных настройках virtualbox проверяете параметры сетевого адаптера только для хоста (вот что Vagrant ручки для вас). При правильной настройке подсети они могут видеть друг друга

0
отвечен roothahn 2022-11-09 16:56

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх