Así que estoy teniendo problemas con una configuración Vagrant de 'hashicorp / precise64' en mi libro MAC.
Primero, mi configuración:
VAGRANTFILE_API_VERSION = "2" Vagrant.configure (VAGRANTFILE_API_VERSION) hacer | config | config.vm.box = "hashicorp / precise64" config.vm.network "public_network", tipo: "dhcp",: bridge => 'en4: Thunderbolt Ethernet' config.vm.hostname = "mddirector" fin
Esta es la salida del 'vagabundo'
==> predeterminado: Intento de apagado correcto de VM ... ==> predeterminado: Comprobando si la casilla 'hashicorp / precise64' está actualizada ... ==> predeterminado: borrando cualquier puerto reenviado establecido previamente ... ==> predeterminado: Borrar cualquier interfaz de red establecida previamente ... ==> predeterminado: Preparando interfaces de red basadas en la configuración ... predeterminado: Adaptador 1: nat predeterminado: Adaptador 2: puenteado ==> predeterminado: reenvío de puertos ... predeterminado: 22 => 2222 (adaptador 1) ==> predeterminado: Arrancando VM ... ==> predeterminado: esperando que la máquina arranque. Esto puede tomar unos pocos minutos... predeterminado: dirección SSH: 127.0.0.1:2222 predeterminado: nombre de usuario SSH: vagabundo predeterminado: método de autenticación SSH: clave privada predeterminado: Advertencia: Tiempo de espera de conexión. Reintentando ... ==> predeterminado: máquina arrancada y lista! GuestAdditions 4.3.10 en ejecución --- OK. ==> predeterminado: Buscando adiciones de invitados en VM ... ==> predeterminado: Configuración del nombre de host ... ==> predeterminado: configurar y habilitar interfaces de red ... ==> predeterminado: Montaje de carpetas compartidas ... valor predeterminado: / vagrant => / Users / garthm / Projects / vagrant ==> predeterminado: máquina ya aprovisionada. Ejecute `disposición vagabunda` o use el` --provision` ==> predeterminado: para forzar el aprovisionamiento. Los aprovisionadores marcados para ejecutarse siempre se ejecutarán.
'ifconfig' muestra lo siguiente:
vagabundo @ mddirector: ~ $ ifconfig eth0 Enlace de enlace: 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 inet6 addr: fe80 :: a00: 27ff: fe88: ca6 / 64 Alcance: Enlace UP BROADCAST RUNNING MULTICAST MTU: 1500 Métrica: 1 Paquetes RX: 725 errores: 0 descartados: 0 desbordamientos: 0 trama: 0 Paquetes TX: 544 errores: 0 descartados: 0 desbordamientos: 0 operador: 0 colisiones: 0 txqueuelen: 1000 RX bytes: 90824 (90.8 KB) TX bytes: 63375 (63.3 KB) eth1 Link encap: 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 RUNNING MULTICAST MTU: 1500 Métrica: 1 Paquetes RX: 3490 errores: 0 descartados: 0 desbordamientos: 0 trama: 0 Paquetes TX: 7 errores: 0 descartados: 0 desbordamientos: 0 operador: 0 colisiones: 0 txqueuelen: 1000 RX bytes: 345981 (345.9 KB) TX bytes: 1102 (1.1 KB) lo Link encap: Loopback local inet addr: 127.0.0.1 Máscara: 255.0.0.0 inet6 addr: :: 1/128 Ámbito: Host UP LOOPBACK RUNNING MTU: 16436 Métrica: 1 Paquetes RX: 0 errores: 0 descartados: 0 desbordamientos: 0 trama: 0 Paquetes TX: 0 errores: 0 descartados: 0 desbordamientos: 0 operador: 0 colisiones: 0 txqueuelen: 0 RX bytes: 0 (0.0 B) TX bytes: 0 (0.0 B)
Mi problema es que puedo hacer ping a la VM desde mi máquina host ( IP: 10.0.24.112
), otras personas también pueden hacer ping a mi VM ( 10.0.24.XXX
), mi VM puede hacer ping a mi devbox ( IP: 10.10.116.254
), puedo hacer ping a otras configuraciones de máquinas virtuales de desarrolladores desde mi devbox ( no Vagrant, IP: 10.10.116.254
), pero no puedo hacer ping a mi VM desde mi devbox y otros desarrolladores no pueden hacer ping a mi VM desde su devbox.
La configuración de la máquina virtual que tienen es solo con una NIC Bridged, pero el vagabundo por alguna razón tiene NAT y Bridged, aunque he especificado bridged en la configuración. Como puede ver, hay dos direcciones IP para la máquina virtual Vagrant, lo que no parece correcto. También puede, cuando se inicia, hace un puerto hacia adelante en el Adaptador 1, que es el adaptador NAT, lo que significa que parece que está usando el adaptador NAT de forma predeterminada para todo.
¿Cómo me deshago del adaptador NAT y uso solo puenteado?
Si edito la configuración de VirtualBox y deshabilito el adaptador NAT, por lo que solo está el Adaptador en puente y arranco la caja a través de VirtualBox (es decir: no usa vagrant up), entonces solo tiene eth0 con una dirección IP que se puede hacer ping desde mi devbox , que es lo que estoy buscando. Si trato de vagar el cuadro después de editar la configuración de VirtualBox y deshabilitar el adaptador NAT, aparece el siguiente error:
Se produjo un error al ejecutar `VBoxManage`, una CLI utilizada por Vagrant para controlar VirtualBox. El comando y stderr se muestran a continuación. Comando: ["modifyvm", "7f1c12f7-74cd-4c6b-aa5a-16d6209cf2b3", "--natpf1", "ssh, tcp, 127.0.0.1,2222,, 22"] Stderr: VBoxManage: error: ya existe una regla NAT de este nombre VBoxManage: error: Detalles: código NS_ERROR_INVALID_ARG (0x80070057), componente NATEngine, interfaz INATEngine, llamada nsISupports VBoxManage: error: Contexto: "AddRedirect (Bstr (strName) .raw (), proto, Bstr (strHostIp) .raw (), RTStrToUInt16 (strHostPort), Bstr (strGuestIp) .raw (), RTStrToUInt16 (strGuestPort))" at línea 1655 del archivo VBoxManageModifyVM.cpp
Si vuelvo a hacer un vagabundo inmediatamente, ha vuelto a habilitar el adaptador NAT nuevamente, y volvemos a tener el mismo problema nuevamente.
La respuesta corta parece ser no.
Puede anular el adaptador 1 pero esperar problemas al menos con
vagrant ssh
Produce:
Desafortunadamente, parece bloquear la configuración del adaptador de red, pero tal vez tenga más suerte que yo.
Si lo hace, siempre puede forzar la detención y la recarga con una corrección
ssh.host
. Alternativamente, he oído hablar de élvagrant dns
pero nunca lo he intentado.fuente
Encontré esta discusión en StackOverflow.
Para mí, fue suficiente para abrir lo relacionado
Vagrantfile
y descomentar la siguiente línea:y luego correr
vagrant reload
fuente