Jak skonfigurować klaster maszyn wirtualnych VirtualBox?

0

Próbuję mieć 3 maszyny wirtualne VirtualBox wszystkie działające jednocześnie na jednym hoście (host Windows, gość Ubuntu), aby móc przetestować uruchomione klastry różnych usług.

Problem w tym, że nie mogę poprawnie skonfigurować konfiguracji sieci maszyn wirtualnych VirtualBox.

Potrzebuję: 1) Wszyscy trzej goście mogą uzyskać dostęp do Internetu 2) Wszyscy trzej goście mogą uzyskać dostęp do hosta osobno, a host może uzyskać dostęp do wszystkich trzech gości osobno (tj. Każdy host ma swój własny unikalny adres IP, tak jakby byli całkowicie niezależnymi serwerami )

Nie mogę tego uruchomić. Próbuję z dwoma kartami sieciowymi na każdym urządzeniu, jednym NAT (dla dostępu do Internetu) i drugą siecią tylko dla Hosta (do komunikacji z hostem). W pewnym sensie mam to działające; chociaż jest to uderzenie lub bałagan… czasami, gdy goście uruchamiają się, odmawiają aktywacji jednego z dwóch połączeń, utknąwszy na linii „Uruchomienie zadania uruchamiania dla podniesienia interfejsów sieciowych” w bagażniku, wtedy jeden z interfejsów nie robi zaczynać. Kiedy jednak działa, wszyscy trzej goście kończą z dokładnie tym samym adresem IP na obu interfejsach. I tak, sprawdziłem - mają różne adresy MAC.

Jak to naprawić, aby trzej goście konsekwentnie konfigurowali sieci i wszyscy trzej mają własne adresy IP, jednocześnie zapewniając wszystkim trzem gościom dostęp do Internetu?

użytkownik1072692
źródło
Ustaw statyczny adres IP maszyn wirtualnych. Ustaw różne podsieci dla NAT i sieci tylko hosta.
Biswapriyo,

Odpowiedzi:

0

Poważnie, użyj do tego Vagrant. Ładnie radzi sobie z drugą kartą sieciową. Oto przykład Vagrantfile, którego używam z rojem dokerów:

$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

Polecenia powłoki są wykonywane jako użytkownik ubuntu (więc użyj sudo). Potem idź vagrant uppo piwo.

Ale kluczową informacją jest to, że dodajesz kartę sieciową tylko do hosta przed każdą instalacją maszyny wirtualnej, aw preferencjach globalnej skrzynki wirtualnej sprawdź ustawienia karty sieciowej tylko do hosta (tak obsługuje Vagrant). Po prawidłowym skonfigurowaniu podsieci będą mogli się widzieć

roothahn
źródło