Donc, j'ai un problème avec une configuration Vagrant de 'hashicorp/precise64' sur mon MAC book.
Tout d'abord, ma configuration :
VAGRANTFILE\_API\_VERSION = "2"
Vagrant.configure(VAGRANTFILE\_API\_VERSION) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.network "public\_network", type: "dhcp", :bridge => 'en4: Thunderbolt Ethernet'
config.vm.hostname = "mddirector"
end
Voici la sortie de 'vagrant up'
\==> default: Tentative d'arrêt en douceur de la VM...
==> default: Vérification si la box 'hashicorp/precise64' est à jour...
==> default: Nettoyage des ports déjà configurés...
==> default: Nettoyage des interfaces réseau déjà configurées...
==> default: Préparation des interfaces réseau en fonction de la configuration...
default: Adapteur 1: nat
default: Adapteur 2: ponté
==> default: Redirection des ports...
default: 22 => 2222 (adapteur 1)
==> default: Démarrage de la VM...
==> default: Attente du démarrage de la machine. Cela peut prendre quelques minutes...
default: Adresse SSH : 127.0.0.1:2222
default: Nom d'utilisateur SSH : vagrant
default: Méthode d'authentification SSH : clé privée
default: Attention : Délai de connexion dépassé. Nouvelle tentative...
==> default: Machine démarrée et prête !
GuestAdditions 4.3.10 en cours d'exécution --- OK.
==> default: Vérification des additions invitées dans la VM...
==> default: Configuration et activation des interfaces réseau...
==> default: Montage des dossiers partagés...
default: /vagrant => /Users/garthm/Projects/vagrant
==> default: Machine déjà provisionnée. Exécutez \`vagrant provision\` ou utilisez \`--provision\`
==> default: pour forcer la provision. Les provisionneurs marqués pour fonctionner toujours seront toujours exécutés.
'ifconfig' montre ce qui suit :
vagrant@mddirector:~$ ifconfig
eth0 Lien encap:Ethernet AdresseHW 08:00:27:88:0c:a6
adr inet:10.0.2.15 Bcast:10.0.2.255 Masque:255.255.255.0
adr inet6: fe80::a00:27ff:fe88:ca6/64 Portée:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Mȧtrique:1
RX paquets:725 erreurs:0 pertes:0 dépassements:0 cadre:0
TX paquets:544 erreurs:0 pertes:0 dépassements:0 porteur:0
collisions:0 longueur file attente:1000
RX octets:90824 (90.8 Ko) TX octets:63375 (63.3 Ko)
eth1 Lien encap:Ethernet AdresseHW 08:00:27:2f:bb:6a
adr inet:10.0.24.118 Bcast:10.0.31.255 Masque:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Mȧtrique:1
RX paquets:3490 erreurs:0 pertes:0 dépassements:0 cadre:0
TX paquets:7 erreurs:0 pertes:0 dépassements:0 porteur:0
collisions:0 longueur file attente:1000
RX octets:345981 (345.9 Ko) TX octets:1102 (1.1 Ko)
lo Lien encap:Boucle locale
adr inet:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Portée:Hôte
UP LOOPBACK RUNNING MTU:16436 Mȧtrique:1
RX paquets:0 erreurs:0 pertes:0 dépassements:0 cadre:0
TX paquets:0 erreurs:0 pertes:0 dépassements:0 porteur:0
collisions:0 longueur file attente:0
RX octets:0 (0.0 o) TX octets:0 (0.0 o)
Mon problème est que je peux pinguer la VM depuis mon ordinateur hôte (IP: 10.0.24.112
), d'autres personnes peuvent aussi pinger ma VM (10.0.24.XXX
), ma VM peut pinger mon devbox (IP: 10.10.116.254
), je peux pinger les setups de machine virtuelle d'autres développeurs depuis mon devbox (pas Vagrant, IP: 10.10.116.254
), mais je ne peux pas pinger ma VM depuis mon devbox et les autres développeurs ne peuvent pas pinger ma VM depuis leur devbox.
Les setups de machine virtuelle qu'ils ont sont avec uniquement une carte NIC pontée, mais pour une raison quelconque, le Vagrant a à la fois une NAT et une carte pontée, même si j'ai spécifié ponté dans la configuration. Comme vous pouvez le voir, il y a deux adresses IP pour la VM Vagrant, ce qui ne semble pas correct. De plus, lorsque la VM démarre, elle effectue un renvoi de port sur l'Adaptateur 1, qui est l'adaptateur NAT, ce qui signifie qu'il semble utiliser l'adaptateur NAT par défaut pour tout.
Comment puis-je me débarrasser de l'adaptateur NAT et utiliser uniquement le mode ponté ?
Si je modifie les paramètres de VirtualBox et désactive l'adaptateur NAT, de sorte qu'il n'y ait que l'Adaptateur ponté et que je démarre la boîte via VirtualBox (c'est-à-dire pas en utilisant 'vagrant up'), alors il n'y a qune eth0 avec une adresse IP pingable depuis mon devbox, ce que je cherche. Si j'essaie de faire un 'vagrant up' après avoir modifié les paramètres de VirtualBox et désactivé l'adaptateur NAT, je reçois l'erreur suivante :
Une erreur s'est produite lors de l'exécution de \`VBoxManage\`, une CLI utilisée par Vagrant pour contrôler VirtualBox. La commande et stderr sont affichés ci-dessous.
Commande : \["modifyvm", "7f1c12f7-74cd-4c6b-aa5a-16d6209cf2b3", "--natpf1", "ssh,tcp,127.0.0.1,2222,,22"\]
Stderr : VBoxManage: erreur: Une règle NAT de ce nom existe déjà
VBoxManage: erreur: Détails: code NS\_ERROR\_INVALID\_ARG (0x80070057), composant NATEngine, interface INATEngine, appelant nsISupports
VBoxManage: erreur: Contexte: "AddRedirect(Bstr(strName).raw(), proto, Bstr(strHostIp).raw(), RTStrToUInt16(strHostPort), Bstr(strGuestIp).raw(), RTStrToUInt16(strGuestPort))" at line 1655 of file VBoxManageModifyVM.cpp
Si je fais immédiatement un 'vagrant up' à nouveau, l'adaptateur NAT est réactivé, et nous retrouvons le même problème à nouveau.