Aujourd'hui, j'ai créé une nouvelle machine virtuelle avec Arch Linux vagrant box. J'ai démarré la machine virtuelle Arch Linux avec vagrant up
commande, mais elle n'a pas démarré. Chaque fois que j'essaie de démarrer la machine virtuelle, le vagabond se bloque lors du montage de dossiers partagés NFS. Après avoir attendu plus de 5 minutes, la commande s'est terminée avec l'erreur suivante :
[...] ==> default: Mounting NFS shared folders… ==> default: Pruning invalid NFS exports. Administrator privileges will be required… [sudo] password for sk: ==> default: Removing domain… The following SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed! mount -o vers=3,udp 192.168.122.1:/home/sk/vagrant/archlinux /vagrant Stdout from the command: Stderr from the command: mount.nfs: Connection refused

Comme vous pouvez le voir, le vagrant up
La commande échoue lors du montage des dossiers partagés NFS. Mon hôte KVM est la dernière édition de Fedora 34. Je n'ai jamais eu ce problème avec les machines virtuelles Ubuntu. Cette erreur s'est produite uniquement lorsque je démarre la machine virtuelle Arch Linux. Si votre machine Vagrant est bloquée lors du "Montage des dossiers partagés NFS", vous pouvez utiliser la solution de contournement indiquée ci-dessous.
Vagrant up se bloque lors du montage de dossiers partagés NFS sous Linux
Ceci est probablement et plus probablement causé par votre pare-feu. Dans mon cas, c'est bien le problème du pare-feu. J'ai dû autoriser les services suivants via le pare-feu pour résoudre le problème de montage des dossiers partagés NFS dans Vagrant :
- nfs,
- monté,
- rpc-bind.
Aussi, j'ai ouvert le port 2049
pour les deux tcp
et udp
.
1. Exécutez les commandes suivantes une par une pour autoriser les services susmentionnés et le port 2049.
$ sudo firewall-cmd --permanent --zone=libvirt --add-service=nfs3
$ sudo firewall-cmd --permanent --zone=libvirt --add-service=nfs
$ sudo firewall-cmd --permanent --zone=libvirt --add-service=mountd
$ sudo firewall-cmd --permanent --zone=libvirt --add-service=rpc-bind
$ sudo firewall-cmd --permanent --zone=libvirt --add-port=2049/tcp
$ sudo firewall-cmd --permanent --zone=libvirt --add-port=2049/udp
2. Rechargez les règles de pare-feu pour appliquer les modifications :
$ sudo firewall-cmd --reload
3. Affichez la liste des services autorisés à l'aide de la commande :
$ firewall-cmd --list-all
Exemple de résultat :
FedoraWorkstation (active)
target: default
icmp-block-inversion: no
interfaces: wlp9s0
sources:
services: dhcpv6-client mdns mountd nfs rpc-bind samba-client ssh
ports: 1025-65535/udp 1025-65535/tcp
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Cela active NFS entre votre hôte et les machines virtuelles Vagrant et autorise le libvirt
des machines virtuelles Vagrant hébergées pour utiliser des montages nfs à partir du système hôte.
4. Après avoir autorisé le service nfs et le port correspondant, j'ai essayé de démarrer la machine virtuelle Vagrant. Cette fois, j'ai rencontré un autre problème :
[...] mount.nfs: requested NFS version or transport protocol is not supported
5. Pour corriger cette erreur, modifiez /etc/nfs.conf
fichier dans le système hôte :
$ sudo vi /etc/nfs.conf
6. Décommentez les deux lignes suivantes :
[nfsd] udp=y
Enregistrez le fichier et fermez-le.
7. Redémarrez le service nfs :
$ sudo systemctl restart nfs-server.service
8. Enfin, redémarrez le système hôte :
$ sudo reboot
C'est ça. Vous devriez maintenant pouvoir démarrer la machine Vagrant sans aucun problème.
Nous avons publié un guide complet sur l'utilisation de Vagrant. Consultez le lien suivant pour savoir comment utiliser Vagrant.
- Tutoriel Vagrant – Premiers pas avec Vagrant sous Linux