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

мульти-машинный бродячий файл как активно-пассивный кластер

Я настроил многомашинный Vagrant-файл с двумя виртуальными машинами, действующими как мини-отказоустойчивый активно-пассивный кластер.

Поскольку запущенные службы одинаковы и работают на одном порту, Vagrant не позволяет мне перенаправлять один и тот же порт дважды на моем хосте, поэтому я не могу получить к ним доступ, и Vagrant не сможет успешно запустить вторую виртуальную машину. .

Я попытался обойти переадресацию портов, разместив виртуальные машины в моей реальной сети с public_network вариант (что-то вроде --net=host в докере? ), но это не решает проблемы.

Правильный поступок:

  • установите виртуальные машины в физической сети, дайте им статические IP-адреса и установите маска сети также:

    config.vm.define "vm1" do |vm1|
        vm1.vm.hostname = "vm1"
        vm1.vm.network "public_network", ip: "192.168.x.y", bridge: "wlan0", netmask: "255.255.255.0"
    end
    
    config.vm.define "vm2" do |vm2|
        vm2.vm.hostname = "vm2"
        vm2.vm.network "public_network", ip: "192.168.x.y", bridge: "wlan0", netmask: "255.255.255.0"
    end
    

Таким образом, виртуальные машины выглядят как физические серверы в моей сети, и переадресация портов не требуется (как в докере с --net=host параметр).

Сначала мои сервисы были доступны только с хоста, на котором работал Vagrant, пока я не понял, что мне нужно предоставить маска сети вариант тоже, и бум, после следующего vagrant reload любое другое устройство в моей локальной сети теперь также может получить доступ к этим службам.

Я нашел решение через это нить.

Я думаю, что официальные документы Vagrant должны быть обновлены, чтобы включить эту опцию, поскольку я не мог найти ее изначально там, и это очень важно.