Vagrant Drupal Development

Poder tener un entorno de desarrollo listo (en nuestro caso LAMP), que se pueda compartir entre los miembros de un grupo de desarrolladores y estar listos para trabajar en unos pocos minutos es posible gracias a Vagrant. En nuestro caso veremos como montar un Drupal8 y para ello nos ayudaremos del proyecto Vagrant Drupal Development y así ahorrarnos la tarea de configuración teniendo estos ficheros como ejemplo de uso para entender el funcionamiento de la herramienta.

 

Los pasos a seguir para montar el entorno VDD son:

· Descargar e instalar la ultima versión de VirtualBox, tanto «VirtualBox platform packages» como «VirtualBox x.x.x Oracle VM VirtualBox Extension Pack».
Comprobar que se ha instalado:

1
2
$ vboxmanage --version
4.3.20r96996

· Descargar e instalar la última versión de Vagrant.
Comprobar que se ha instalado:

1
2
$ vagrant --version
Vagrant 1.7.2

· Descargar y descomprimir Vagrant Drupal Development.
En config.json podemos ver la configuración para dos sitios, un Drupal 7 y un 8, con su información de usuarios y contraseñas.
Entrar en el directorio vdd descomprimido y construir el entorno:

1
$ vagrant up

· En este punto Vagrant (ver documentación de Vagrant) comenzará a descargar un Ubuntu 12.04 como base donde se ejecutarán los sitios (con todo lo necesario para ello: Apache, PHP, MySQL, etc), esta configuración se encuentra en Vagrantfile. Esto puede tardar entre 5-10 minutos (depende de la conexión de red y el hardware). VDD utiliza Chef Solo provisioner para construir el sistema (ver documentación de Chef).
La instalación termina con:

1
2
3
==> default: =============================================================
==> default: Install finished! Visit http://192.168.44.44 in your browser.
==> default: =============================================================

· Para entrar en el entorno virtual ejecutaremos:

1
$ vagrant ssh

· Una vez dentro podemos movernos y ver el contenido de /var/www/.

1
2
3
vagrant@precise32:~$ cd /var/www/
vagrant@precise32:/var/www$ ls
drupal7 drupal8 index.html phpinfo.php webgrind

· Este directorio virtual se encuentra sincronizado (es un directorio compartido) con nuestro directorio local vdd/data/.
Si entramos con el navegador a http://192.168.44.44 veremos una página con documentación de uso e instrucciones para configurar nuestro hosts y poder acceder a los sitios web declarados en el config.json.

 

Instalar Drupal 8:

1
$ vagrant ssh

· En el directorio home tenemos el directorio sites/ que es un enlace a /var/www/.

1
2
3
cd ~/sites/drupal8
git clone --branch 8.0.x http://git.drupal.org/project/drupal.git .
drush @drupal8 si standard -y

· Una vez instalado podremos acceder a la web en la url http://drupal8.dev o http://192.168.44.44/drupal8 dependiendo de la configuración en hosts. Notaremos que la web va más lento de lo normal, es debido a los directorios compartidos de VirtualBox, para solucionar esto debemos instalar NFS (Los pasos siguientes son para Ubuntu, los Mac ya vienen con él instalado solo tendría que cambiar la configuración de config.json y en Windows podemos encontrar otra solución en la documentación de Drupal):

1
$ sudo apt-get install nfs-kernel-server

· Cambiar la configuración de config.json de:

1
2
3
4
5
6
"synced_folders": [
{
"host_path": "data/",
"guest_path": "/var/www",
"type": "default"
}

por:

1
2
3
4
5
6
"synced_folders": [
{
"host_path": "data/",
"guest_path": "/var/www",
"type": "nfs"
}

· Ejecutamos un reload dentro de vdd/:

1
$ vagrant reload

Se podría personalizar la configuración de los ficheros de Vagrant adaptándolos a nuestras necesidades y compartirlas entre el equipo de desarrollo para que todos tengan el mismo entorno, minimizando los problemas que se puedan tener a la hora de desarrollar en distintos sistemas operativos con distintas versiones de las herramientas necesarias para ello.