Hoy creé una nueva máquina virtual con Arch Linux vagrant box. Inicié la máquina virtual Arch Linux con vagrant up
comando, pero no se inició. Cada vez que intento iniciar la VM, el vagabundo se cuelga al montar carpetas compartidas NFS. Después de esperar más de 5 minutos, el comando terminó con el siguiente error:
[...] ==> 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
Como puede ver, el vagrant up
El comando falla al montar las carpetas compartidas de NFS. Mi host KVM es la última edición de Fedora 34. Nunca tuve este problema con las máquinas virtuales de Ubuntu. Este error ocurrió solo cuando inicio la máquina virtual Arch Linux. Si su máquina Vagrant se atascó mientras "Montaba las carpetas compartidas de NFS", puede usar la solución alternativa que se indica a continuación.
Vagrant se bloquea al montar carpetas compartidas NFS en Linux
Esto es probablemente y más probablemente causado por su firewall. En mi caso, de hecho, es el problema del firewall. Tuve que permitir los siguientes servicios a través del firewall para solucionar el problema de montaje de carpetas compartidas NFS en Vagrant:
- nfs,
- montado,
- rpc-bind.
Además, abrí el puerto 2049
para ambos tcp
y udp
.
1. Ejecute los siguientes comandos uno por uno para permitir los servicios antes mencionados y el puerto 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. Vuelva a cargar las reglas del cortafuegos para aplicar los cambios:
$ sudo firewall-cmd --reload
3. Vea la lista de servicios permitidos usando el comando:
$ firewall-cmd --list-all
Salida de muestra:
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:
Esto habilita NFS entre su host y las máquinas virtuales de Vagrant y permite que libvirt
máquinas virtuales Vagrant alojadas para usar montajes nfs desde el sistema host.
4. Después de permitir el servicio nfs y el puerto correspondiente, intenté iniciar la máquina virtual Vagrant. Esta vez me encontré con otro problema:
[...] mount.nfs: requested NFS version or transport protocol is not supported
5. Para corregir este error, edite /etc/nfs.conf
archivo en el sistema anfitrión:
$ sudo vi /etc/nfs.conf
6. Quite el comentario de las siguientes dos líneas:
[nfsd] udp=y
Guarde el archivo y ciérrelo.
7. Reinicie el servicio nfs:
$ sudo systemctl restart nfs-server.service
8. Finalmente, reinicie el sistema host:
$ sudo reboot
Eso es todo. Ahora debería poder iniciar la máquina Vagrant sin ningún problema.
Hemos publicado una guía completa sobre el uso de Vagrant. Consulte el siguiente enlace para aprender a usar Vagrant.
- Tutorial de Vagrant:Introducción a Vagrant en Linux