J'ai donc des problèmes avec une configuration Vagrant de 'hashicorp / precise64' sur mon carnet MAC.
Tout d'abord, ma config:
VAGRANTFILE_API_VERSION = "2" Vagrant.configure (VAGRANTFILE_API_VERSION) do | config | config.vm.box = "hashicorp / precise64" config.vm.network "public_network", tapez: "dhcp",: bridge => 'en4: Thunderbolt Ethernet' config.vm.hostname = "mddirector" fin
C'est le oupput du vagabond
==> défaut: tentative d'arrêt en douceur de la machine virtuelle ... ==> défaut: Vérifier si la case 'hashicorp / precise64' est à jour ... ==> défaut: effacer tous les ports transférés précédemment définis ... ==> défaut: effacer toutes les interfaces réseau précédemment définies ... ==> défaut: préparer les interfaces réseau en fonction de la configuration ... défaut: Adaptateur 1: nat défaut: Adaptateur 2: ponté ==> défaut: Transfert des ports ... valeur par défaut: 22 => 2222 (adaptateur 1) ==> défaut: démarrage de la machine virtuelle ... ==> défaut: En attente de démarrage de la machine. Cela peut prendre quelques minutes... valeur par défaut: adresse SSH: 127.0.0.1:2222 défaut: SSH nom d'utilisateur: vagrant valeur par défaut: méthode d'authentification SSH: clé privée défaut: Avertissement: délai de connexion. Réessayer ... ==> défaut: machine démarrée et prête! GuestAdditions 4.3.10 en cours d'exécution --- OK. ==> default: Vérification des ajouts d'invités dans VM ... ==> défaut: Définition du nom d'hôte ... ==> défaut: configuration et activation des interfaces réseau ... ==> défaut: Monter les dossiers partagés ... défaut: / vagrant => / Users / garthm / Projects / vagrant ==> défaut: machine déjà approvisionnée. Lancer `vagrant provision` ou utiliser le` --provision` ==> défaut: pour forcer le provisioning. Les approvisionneurs marqués pour être exécutés continueront toujours à fonctionner.
'ifconfig' montre ce qui suit:
vagrant @ mddirector: ~ $ ifconfig eth0 Encapsulation de lien: Ethernet HWaddr 08: 00: 27: 88: 0c: a6 inet addr: 10.0.2.15 Bcast: 10.0.2.255 Masque: 255.255.255.0 inet6 addr: fe80 :: a00: 27ff: fe88: ca6 / 64 Portée: lien UP BROADCAST RUNNING MULTICAST MTU: 1500 Métrique: 1 Paquets RX: 725 erreurs: 0 lâchés: 0 dépassements: 0 trame: 0 Paquets TX: 544 erreurs: 0 abandonnées: 0 dépassements: 0 opérateur: 0 collisions: 0 txqueuelen: 1000 Octets RX: 90824 (90,8 Ko) Octets TX: 63375 (63,3 Ko) eth1 Lien encapsulé: Ethernet HWaddr 08: 00: 27: 2f: bb: 6a inet addr: 10.0.24.118 Bcast: 10.0.31.255 Masque: 255.255.248.0 UP BROADCAST RUNNING MULTICAST MTU: 1500 Métrique: 1 Paquets RX: 3490 erreurs: 0 abandonnées: 0 dépassements: 0 trame: 0 Paquets TX: 7 erreurs: 0 abandonnées: 0 dépassements: 0 transporteur: 0 collisions: 0 txqueuelen: 1000 Octets de réception: 345981 (345,9 Ko) Octets de transmission: 1102 (1,1 Ko) lo Link encap: Local Loopback inet addr: 127.0.0.1 Masque: 255.0.0.0 inet6 addr: :: 1/128 Portée: hôte UP LOOPBACK RUNNING MTU: 16436 Métrique: 1 Paquets RX: 0 erreurs: 0 abandonnées: 0 dépassements: 0 image: 0 Paquets TX: 0 erreurs: 0 abandonnées: 0 dépassements: 0 transporteur: 0 collisions: 0 txqueuelen: 0 Octets RX: 0 (0.0 B) Octets TX: 0 (0.0 B)
Mon problème est que, si je peux envoyer un ping à la machine virtuelle depuis ma machine hôte ( IP: 10.0.24.112
), d’autres personnes peuvent aussi envoyer un ping à ma machine virtuelle ( 10.0.24.XXX
), ma machine virtuelle peut envoyer un ping à ma devbox ( IP: 10.10.116.254
), je peux envoyer une requête ping aux configurations de machines virtuelles des autres développeurs pas Vagrant, IP: 10.10.116.254
), mais je ne peux pas cingler ma VM depuis ma devbox et les autres développeurs ne peuvent pas cingler ma VM depuis leur devbox.
Les configurations de la machine virtuelle qu'ils ont est uniquement avec une carte réseau pontée, mais pour une raison quelconque, le vagabond a un NAT et un pont, même si j'ai spécifié ponté dans la configuration. Comme vous pouvez le constater, il existe deux adresses IP pour la machine virtuelle vagabonde, ce qui ne semble pas correct. Vous pouvez également, lors du démarrage, effectuer un transfert de port sur l'adaptateur 1, qui correspond à l'adaptateur NAT, ce qui signifie qu'il sonne comme s'il utilisait l'adaptateur NAT par défaut pour tout.
Comment puis-je me débarrasser de l'adaptateur NAT et utiliser uniquement un pont?
Si j'édite les paramètres de VirtualBox et si je 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: ne pas utiliser vagrant), alors il n'y a qu'un eth0 avec une adresse IP qui est pingable depuis ma devbox , c'est ce que je cherche. Si j'essaie de vagabonder dans la boîte après avoir modifié les paramètres de VirtualBox et désactivé l'adaptateur NAT, j'obtiens le message d'erreur suivant:
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 illustrés ci-dessous. Commande: ["modifyvm", "7f1c12f7-74cd-4c6b-aa5a-16d6209cf2b3", "--natpf1", "ssh, tcp, 127.0.0.1.2222,, 22"] Stderr: VBoxManage: error: une règle NAT de ce nom existe déjà VBoxManage: erreur: Détails: code NS_ERROR_INVALID_ARG (0x80070057), composant NATEngine, interface INATEngine, appelé nsISupports VBoxManage: error: Context: "AddRedirect (Bstr (strName) .raw (), proto, Bstr (strHostIp) .raw (), RTStrToUInt16 (strHostPort), Bstr (strGuestIp) .raw (), RTStrToUInt16 (strHostPort), Bstr (strGuestIp) .raw (), RTStrToUInt16 (strGuestPort)) ligne 1655 du fichier VBoxManageModifyVM.cpp
Si je refais immédiatement un vagabond, il a réactivé l'adaptateur NAT, et nous avons de nouveau le même problème.
La réponse courte semble être non.
Vous pouvez remplacer l’adaptateur 1, mais attendez-vous au moins à des problèmes avec
vagrant ssh
Produit:
Malheureusement, il semble que la configuration de la carte réseau soit bloquée, mais vous aurez peut-être plus de chance que moi.
Si vous le faites, vous pouvez toujours forcer l’arrêt et le rechargement avec une correction
ssh.host
. Alternativement j'ai entendu parler devagrant dns
mais jamais essayé.la source
J'ai trouvé cette discussion sur StackOverflow.
Pour moi, il suffisait d'ouvrir le lien
Vagrantfile
et de décommenter la ligne suivante:puis courir
vagrant reload
la source