Portanto, estou tendo problemas com a configuração do Vagrant de 'hashicorp / precision64' no meu livro do MAC.
Primeiro, minha configuração:
VAGRANTFILE_API_VERSION = "2" Vagrant.configure (VAGRANTFILE_API_VERSION) do | config | config.vm.box = "hashicorp / precision64" config.vm.network "public_network", digite: "dhcp",: bridge => 'en4: Thunderbolt Ethernet' config.vm.hostname = "mddirector" fim
Esta é a saída do 'vagabundo para cima'
==> padrão: Tentativa de desligamento normal da VM ... ==> padrão: Verificando se a caixa 'hashicorp / precision64' está atualizada ... ==> padrão: Limpando todas as portas encaminhadas definidas anteriormente ... ==> padrão: Limpando as interfaces de rede definidas anteriormente ... ==> padrão: Preparando interfaces de rede com base na configuração ... padrão: adaptador 1: nat padrão: Adaptador 2: em ponte ==> padrão: portas de encaminhamento ... padrão: 22 => 2222 (adaptador 1) ==> padrão: Inicializando a VM ... ==> padrão: Aguardando a inicialização da máquina. Isso pode levar alguns minutos... padrão: endereço SSH: 127.0.0.1:2222 padrão: nome de usuário SSH: vagrant padrão: método de autenticação SSH: chave privada padrão: Aviso: Tempo limite da conexão. Tentando novamente ... ==> padrão: Máquina inicializada e pronta! GuestAdditions 4.3.10 em execução --- OK. ==> padrão: Verificando adições de convidados na VM ... ==> padrão: Definindo o nome do host ... ==> padrão: configurando e ativando interfaces de rede ... ==> padrão: Montando pastas compartilhadas ... padrão: / vagrant => / Usuários / garthm / Projetos / vagrant ==> padrão: a máquina já provisionada. Execute `vagrant provision` ou use o` --provision` ==> padrão: para forçar o provisionamento. Os provisionadores marcados para executar sempre ainda serão executados.
'ifconfig' mostra o seguinte:
vagrant @ mddirector: ~ $ ifconfig eth0 Encap do link: Ethernet HWaddr 08: 00: 27: 88: 0c: a6 inet addr: 10.0.2.15 Bcast: 10.0.2.255 Máscara: 255.255.255.0 Endereço do inet6: fe80 :: a00: 27ff: fe88: ca6 / 64 Escopo: Link UP BROADCAST EM FUNCIONAMENTO MULTICAST MTU: 1500 Métrico: 1 Pacotes RX: 725 erros: 0 eliminados: 0 excedentes: 0 quadro: 0 Pacotes TX: 544 erros: 0 eliminados: 0 excedentes: 0 transportadora: 0 colisões: 0 txqueuelen: 1000 Bytes RX: 90824 (90,8 KB) Bytes TX: 63375 (63,3 KB) Encaminhamento de link eth1: Ethernet HWaddr 08: 00: 27: 2f: bb: 6a inet addr: 10.0.24.118 Bcast: 10.0.31.255 Máscara: 255.255.248.0 UP BROADCAST EM FUNCIONAMENTO MULTICAST MTU: 1500 Métrico: 1 Pacotes RX: 3490 erros: 0 eliminados: 0 excedentes: 0 quadro: 0 Pacotes TX: 7 erros: 0 eliminados: 0 excedentes: 0 transportadora: 0 colisões: 0 txqueuelen: 1000 Bytes RX: 345981 (345,9 KB) Bytes TX: 1102 (1,1 KB) lo Encap do link: Loopback local inet addr: 127.0.0.1 Máscara: 255.0.0.0 inet6 addr: :: 1/128 Escopo: Host UP LOOPBACK EM FUNCIONAMENTO MTU: 16436 Métrico: 1 Pacotes RX: 0 erros: 0 eliminados: 0 excedentes: 0 quadro: 0 Pacotes TX: 0 erros: 0 eliminados: 0 excedentes: 0 transportadora: 0 colisões: 0 txqueuelen: 0 Bytes RX: 0 (0,0 B) Bytes TX: 0 (0,0 B)
Meu problema é que, posso executar ping na VM da minha máquina host ( IP: 10.0.24.112
), outras pessoas também podem fazer ping na minha VM ( 10.0.24.XXX
), minha VM pode executar ping no meu devbox ( IP: 10.10.116.254
), posso executar o ping nas configurações de máquinas virtuais de outros desenvolvedores no meu devbox ( não Vagrant IP: 10.10.116.254
), mas não consigo executar ping na minha VM do meu devbox e outros desenvolvedores não podem executar ping na minha VM do devbox.
As configurações da máquina virtual que eles possuem são apenas com uma NIC em ponte, mas por algum motivo o vagabundo tem uma NAT e uma ponte, embora eu tenha especificado a ponte na configuração. Como você pode ver, existem dois endereços IP para a VM Vagrant, o que não parece certo. Você também pode, quando inicializar, executar uma porta para frente no adaptador 1, que é o adaptador NAT, o que significa que parece que ele está usando o adaptador NAT por padrão para tudo.
Como faço para me livrar do adaptador NAT e usar apenas ponte?
Se eu editar as configurações do VirtualBox e desativar o adaptador NAT, houver apenas o adaptador em ponte e inicializar a caixa via VirtualBox (ou seja: não usar o vagrant up), ele só terá eth0 com um endereço IP que pode ser pingado no meu devbox , que é o que estou procurando. Se eu tentar vagar pela caixa depois de editar as configurações do VirtualBox e desativar o adaptador NAT, recebo o seguinte erro:
Ocorreu um erro ao executar o `VBoxManage`, uma CLI usada pelo Vagrant para controlar o VirtualBox. O comando e stderr são mostrados abaixo. Comando: ["modifyvm", "7f1c12f7-74cd-4c6b-aa5a-16d6209cf2b3", "--natpf1", "ssh, tcp, 127.0.0.1,2222, 22"] Stderr: VBoxManage: erro: Já existe uma regra NAT com esse nome VBoxManage: error: Detalhes: código NS_ERROR_INVALID_ARG (0x80070057), componente NATEngine, interface INATEngine, chamada nsISupports VBoxManage: error: Contexto: "AddRedirect (Bstr (strName) .raw (), proto, Bstr (strHostIp) .raw (), RTStrToUInt16 (strHostPort), Bstr (strGuestIp) .raw (), RTStrToUInt16 (strGuestPort)" em linha 1655 do arquivo VBoxManageModifyVM.cpp
Se eu imediatamente voltar a vagar, ele reativou o adaptador NAT novamente e voltamos a ter o mesmo problema novamente.
A resposta curta parece ser não.
Você pode substituir o adaptador 1, mas espera problemas pelo menos com
vagrant ssh
Produz:
Infelizmente, parece que a configuração do adaptador de rede está bloqueada, mas talvez você tenha mais sorte do que eu.
Se fizer isso, você sempre pode forçar a parada e recarregar com uma correção
ssh.host
. Alternativamente, eu ouvi falar,vagrant dns
mas nunca tentei.fonte
Eu encontrei esta discussão no StackOverflow.
Para mim, bastava abrir o relacionado
Vagrantfile
e descomentar a seguinte linha:e depois corra
vagrant reload
fonte