3
respostas

Vagrant - Erro ao setar Ip da VM

Olá!

Toda vez que tento rodar o Vagrantfile com o comando "vagrant up" ele não sobe a VM e retorna o erro abaixo, informando que o ip que setei para a máquina virtual pode conflitar com outros ips da minha rede:

F:\curso_vagrant\projects\ubuntu16>vagrant up
Bringing machine 'web' up with 'virtualbox' provider...
==> web: Clearing any previously set network interfaces...
The specified host network collides with a non-hostonly network!
This will cause your specified IP to be inaccessible. Please change
the IP or name of your host only network so that it no longer matches that of
a bridged or non-hostonly network.

Estou utilizando o vagrant em conjunto com o virtualbox (conforme o curso de vagrant), mas somente consigo subir a vm comentando a linha que seta o ip na vm. Assim, quando a vm sobe, ela fica com um ip diferente da minha rede e inacessivel da minha máquina. Minha maquina local tem o ip na rede 192.168.2.0, mas a vm fica com ip 10.0.2.15. Não consigo fazer ping e nem acessar o tomcat da vm via http da minha máquina.

Meu vagrantfile:

Vagrant.configure("2") do |config|
    config.vm.hostname = "vmvagubuntu"
    config.vm.box = "ubuntu/xenial64"
    config.vm.define :web do |web_config|
        web_config.vm.network "private_network", ip: "192.168.2.111"
    end
end

Essa é alinha que dá erro: web_config.vm.network "private_network", ip: "192.168.2.111"

Procurei na internet, verifiquei as configurações do virtualbox, mas não encontrei nada que resolvesse esse problema. Existe alguma solução para esse problema? Seria um grande problema para mim usar o vagrant em minha empresa e nao conseguir setar um ip da rede na vm...

Desde já muito obrigado!

3 respostas

Oi Altair, tudo bem? Você pretende deixar o vagrant centralizado em uma máquina que todo mundo acessa? É isso? Veja que o private_network vai funcionar apenas para a maquina local, é uma conexão direta com sua própria máquina que você vai conseguir acessar pelo localhost.

Pra liberar para a rede externa, ou seja, publica, você precisa configurar o public_network, verifica se é isso mesmo?

Boa tarde Wanderson Macêdo!

Vou testar isso mais tarde em casa! Mas sim, a ideia é essa!

Havia entendido pelo curso, e pela maneira que o instrutor setou o IP da VM, que este estaria acessivel na mesma rede do Host. Quando tentei fazer isso (com private_network ) não consegui acessar os serviços da VM nem da minha máquina local. Sequer fazer ping.

Mas vou testar e respondo aqui. Muito obrigado pela ajuda! :)

Oi Altair, a ideia do Vagrant tal como a do Docker não é centralizar uma máquina na rede onde tudo será desenvolvido, é eliminar as diferenças de ambiente de um dev para o outro.

Em casos em que um dev usa Linux o outro Windows o outro Mac, a sua aplicação em vez de depender do ambiente particular do dev, estaria rodando em uma máquina virtual ou ambiente virtual que se pareceria diretamente com o servidor de hospedagem da aplicação.

Você pode sim centralizar isso, mas creio que essa não é a intenção.