Carpetas compartidas en vagrant


Aprender a compartir carpetas entre el host y la máquina virtual (VM) es fundamental para usar Vagrant de forma eficiente

Carpetas compartidas en vagrant
oscar Escrito por oscar 22 April 2025 488 0

Aprender a compartir carpetas entre el host y la máquina virtual (VM) es fundamental para usar Vagrant de forma eficiente.

Esto te permite editar archivos en tu sistema operativo host (por ejemplo, Windows) y ver los cambios directamente en la VM (por ejemplo, una máquina Linux), sin tener que copiar archivos manualmente.

🔍 ¿Cómo funciona el "Shared Folder" en Vagrant?

Vagrant usa "carpetas sincronizadas" (synced folders) para vincular una carpeta en tu máquina host con una carpeta dentro de la VM. Esto se configura en el archivo Vagrantfile.

  • Host: tu sistema operativo (ej. Windows, Linux, macOS)
  • Guest: el sistema operativo de la VM (ej. Ubuntu, CentOS)

Cuando inicias la VM con vagrant up, Vagrant sincroniza esas carpetas automáticamente.

Compartir carpeta con vagrant
Compartir carpeta con vagrant

🛠️ Ejemplo paso a paso: Compartir una carpeta

📁 Estructura de carpetas en el host:

proyecto-vagrant/
├── Vagrantfile
├── compartido/
│   └── archivo.txt

Supongamos que estamos en Windows o Linux y queremos que la carpeta compartido/ se vea dentro de la VM.

1️⃣​ Crea el directorio del proyecto

mkdir proyecto-vagrant
cd proyecto-vagrant
mkdir compartido
echo "Hola desde el host" > compartido/archivo.txt

2️⃣ Inicializa Vagrant

vagrant init hashicorp/bionic64

Este comando genera un Vagrantfile.

​3️⃣ Edita el Vagrantfile

Busca esta sección (puede estar comentada):

# config.vm.synced_folder "../data", "/vagrant_data"

Y reemplázala por esto:

config.vm.synced_folder "./compartido", "/home/vagrant/compartido"

📌 Esto sincroniza:

  • Desde el host: ./compartido
  • Hacia la VM (guest): /home/vagrant/compartido

​4️⃣ Levanta la VM

vagrant up

Esto descarga la imagen si es necesario y crea la VM.

​5️⃣ ​Entra en la VM

vagrant ssh

6️⃣​ Verifica que la carpeta esté compartida

Dentro de la VM, ejecuta:

ls /home/vagrant/compartido

Deberías ver:

archivo.txt

Y puedes abrirlo:

cat /home/vagrant/compartido/archivo.txt

7️⃣​​ Probar edición bidireccional (opcional)

Dentro de la VM, crea otro archivo:

echo "Hola desde la VM" > /home/vagrant/compartido/desde-vm.txt

En tu host (Windows/Linux), ve a la carpeta compartido/ y verás desde-vm.txt.

🧠 Notas importantes

En Windows, puede que necesites permisos para compartir carpetas (especialmente en VirtualBox).

Algunos sistemas usan NFS o rsync para hacer el sync más eficiente. Puedes configurar el tipo así:

config.vm.synced_folder "./compartido", "/home/vagrant/compartido", type: "rsync"

Para que rsync funcione, debe estar instalado en tu host y VM.


Comentario

Debe aceptar antes de enviar