hostname-automatico-vagrant-homestead-styde

Homestead es una maquina virtual (VM por sus siglas en ingles) para Vagrant configurada para desarrollar proyectos web, especialmente usando Laravel. Gracias a Homestead podemos configurar fácilmente en una sola VM todos los proyectos en los cuales estemos trabajando. Si no has utilizado esta herramienta, en nuestra serie dedicada a Vagrant y Homestead puedes encontrar varios tutoriales que te guiarán paso a paso en el proceso de instalación y configuración dependiendo del sistema operativo que estés utilizando.

La configuración de un nuevo proyecto en Homestead es muy sencilla en realidad, aún así, podemos agilizar el proceso haciendo uso de este plugin llamado vagrant-hostupdater, que nos ayuda a establecer de forma automática los hostname para cada proyecto evitando así la necesidad de editar manualmente el archivo hosts para cada instalación, algo que encuentro muy útil a la hora de trabajar con múltiples proyectos simultáneamente.

Para utilizar este plugin debes tener instalado Vagrant y Homestead en tu maquina local.

Instalación del plugin

Desde la consola ejecuta el siguiente comando:

$ vagrant plugin install vagrant-hostsupdater

Configuración

Una vez instalado debes editar el archivo Homestead\scripts\homestead.rb y agregar la siguiente línea:

# Configure A Private Network IP
 ...
config.hostsupdater.aliases = settings["aliases"]

Si instalaste Homestead con composer el archivo está ubicado en .composer/vendor/laravel/homestead/scripts/homestead.rb

De ahora en adelante para cada proyecto que configures en el archivo homestead.yaml deberás agregar el hostname correspondiente dentro del array «aliases» en el mismo archivo.

aliases: ["aprendelaravel.dev"]

Por lo cual, si tienes un proyecto llamado aprendelaravel tu archivo homestead.yaml deberá verse como este:

ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/homestead_rsa.pub

keys:
    - ~/.ssh/homestead_rsa

aliases: ["aprendelaravel.dev"]

folders:
    - map: D:\Data\Code
      to: /home/vagrant/Code

sites:
    - map: aprendelaravel.dev
      to: /home/vagrant/Code/aprendelaravel/public

databases:
    - homestead

variables:
    - key: APP_ENV
      value: local

Resultado

De ahora en adelante cada vez que ejecutes vagrant up,  o si tienes instalado Homestead de forma global homestead up, para iniciar tu máquina virtual, todos los hostnames agregados dentro del array «aliases» serán agregados de forma automática al archivo hosts.

Estos hostnames no se actualizan, se eliminan cada vez que se detiene la máquina con vagrant halt (o homestead halt, en caso de instalación global) y se crean nuevamente al iniciarla; esto con la finalidad de evitar errores de sobre escritura.

Espero que este plugin te sea de gran ayuda, en lo personal lo encuentro muy útil y más aun cuando te enfrentas a proyectos nuevos frecuentemente. Si te gusto el material, por favor compártelo en redes sociales, recuerda también que puedes dejar tus dudas en la sección de comentarios.

Material relacionado

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Configuración de Homestead en Windows 10 Lección siguiente Como hacer "debug" usando Xdebug, PhpStorm y Homestead