Si vagrant no te funciona

Captura de pantalla 2016-04-01 a las 13.27.31

Vagrant es un Docker muy chulo, un virtualizador que nos permite desplegar aplicaciones y entornos seguros de forma que podemos empaquetar dichos entornos y desplegarlos r谩pida y sencillamente. La ventaja, igual que Docker, es que no metemos m谩quinas completas y si solo lo m铆nimamente necesario para que la aplicaci贸n pueda ejecutarse. Su instalaci贸n es muy sencilla y la creaci贸n de m谩quinas especificas, contenedores, aplicaciones tambi茅n. Os recomiendo muy encarecidamente que visit茅is su web para m谩s informaci贸n ya que es un campo muy interesante y actualmente es hacia donde tienden todos los ISPs.

Pero, 驴que pasa cuando la m谩quina se niega a arrancar?. Veamos una posible soluci贸n al error `read’: Is a directory @ io_fread – /etc/exports (Errno::EISDIR)

Si al ejecutar un vagrant up tras haber creado o inicializado una maquina, nos aparece un churro de errores al estilo (pongo un trozo):

...
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/action/runner.rb:66:in `run'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/machine.rb:224:in `action_raw'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/machine.rb:199:in `block in action'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/environment.rb:561:in `lock'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/machine.rb:185:in `call'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/machine.rb:185:in `action'
from /opt/vagrant/embedded/gems/gems/vagrant-1.8.1/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'
...

Es recomendable que revisemos la primera linea del error, si tiene algo como:

/opt/vagrant/embedded/gems/gems/vagrant-1.8.1/plugins/hosts/bsd/cap/nfs.rb:139:in `read': Is a directory @ io_fread - /etc/exports (Errno::EISDIR)

O similar, dependiendo si lo hab茅is instalado via gems, pero donde lo importante es que el nfs.rb (de Ruby) intenta leer un archivo (el /etc/exports) y falla. Podr茅is ver si ese archivo en cuesti贸n no es un archivo y si un directorio. En caso de ser un directorio es que esta mal y os recomiendo el siguiente parche para solucionarlo:

cat /etc/exports/nfs_exports | pbcopy
sudo rm -rf /etc/exports
sudo touch /etc/export
pbpaste | sudo tee /etc/exports

Donde, lo que hemos hecho es sacar el contenido del fichero nfs_exports del directorio, eliminado el directorio como root y creado un fichero export con el contenido del fichero que ten铆amos.

Si tras eso, arrancamos la maquina vagrant veremos que funciona correctamente.

Principalmente esto sucede cuando en la maquina en cuesti贸n (que suele ser un Unix o un sistema basado en Unix como OSX) hab茅is instalado o usado un virtualizador de 芦otra marca禄 que ha sido el encargado de crear el /exports/nfs_exports y lo ha dejado ahi.

Algunas aplicaciones, al detectar este fichero erroneo, simplemente pasan de el, mientras que para Vagrant, es necesario. De ahi que de el error.

tuti

T茅cnico en Comunicaci贸n Interna de la UVa

Deja una respuesta

Tu direcci贸n de correo electr贸nico no ser谩 publicada.

Este sitio usa Akismet para reducir el spam. Aprende c贸mo se procesan los datos de tus comentarios.