Hari ini saya membuat mesin Virtual baru dengan kotak gelandangan Arch Linux. Saya memulai mesin virtual Arch Linux dengan vagrant up
perintah, tetapi tidak dimulai. Setiap kali saya mencoba memulai VM, gelandangan hang saat memasang folder bersama NFS. Setelah menunggu lebih dari 5 menit, perintah berakhir dengan kesalahan berikut:
[...] ==> 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
Seperti yang Anda lihat, vagrant up
perintah gagal saat memasang folder bersama NFS. Host KVM saya adalah edisi Fedora 34 terbaru. Saya tidak pernah mengalami masalah ini dengan mesin virtual Ubuntu. Kesalahan ini hanya terjadi ketika saya memulai mesin virtual Arch Linux. Jika mesin Vagrant Anda macet saat "Memasang folder bersama NFS", Anda dapat menggunakan solusi yang diberikan di bawah ini.
Vagrant up hang saat memasang folder bersama NFS di Linux
Ini mungkin dan lebih mungkin disebabkan oleh firewall Anda. Dalam kasus saya, ini memang masalah firewall. Saya harus mengizinkan layanan berikut melalui firewall untuk memperbaiki masalah pemasangan folder bersama NFS di Vagrant:
- nfs,
- dipasang,
- rpc-bind.
Juga, saya membuka port 2049
untuk keduanya tcp
dan udp
.
1. Jalankan perintah berikut satu per satu untuk mengizinkan layanan yang disebutkan di atas dan 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. Muat ulang aturan firewall untuk menerapkan perubahan:
$ sudo firewall-cmd --reload
3. Lihat daftar layanan yang diizinkan menggunakan perintah:
$ firewall-cmd --list-all
Contoh keluaran:
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:
Ini mengaktifkan NFS antara host Anda dan mesin virtual Vagrant dan mengizinkan libvirt
VM Vagrant yang dihosting untuk menggunakan nfs mount dari sistem host.
4. Setelah mengizinkan layanan nfs dan port yang relevan, saya mencoba memulai Vagrant VM. Kali ini saya mengalami masalah lain:
[...] mount.nfs: requested NFS version or transport protocol is not supported
5. Untuk memperbaiki kesalahan ini, edit /etc/nfs.conf
file di sistem host:
$ sudo vi /etc/nfs.conf
6. Batalkan komentar pada dua baris berikut:
[nfsd] udp=y
Simpan file dan tutup.
7. Mulai ulang layanan nfs:
$ sudo systemctl restart nfs-server.service
8. Terakhir, reboot sistem host:
$ sudo reboot
Itu dia. Sekarang Anda seharusnya dapat memulai mesin Vagrant tanpa masalah.
Kami telah memposting panduan lengkap tentang penggunaan Vagrant. Periksa tautan berikut untuk mempelajari cara menggunakan Vagrant.
- Tutorial Vagrant – Memulai Vagrant Di Linux