Vagrant Magento

Vagrant Magento

15 Jul 2020 in

Vagrant Magento: Configurar y también instalar ambientes de desarrollo virtuales

A la hora de desarrollar un proyecto ecommerce (y web normalmente), lo recomendable es contar con múltiples entornos de trabajo. Esto es así debido a que los nuevos desarrollos y funcionalidades una vez desarrolladas han de ser testeadas por la parte del departamento técnico para más tarde ser verificadas por parte del usuario. Una vez conseguimos el visto bueno del usuario el nuevo desarrollo puede pasar al ambiente de producción. Por tanto podemos distinguir 3 ambientes de desarrollo distintos

Entorno de desarrollo local:Representa el equipo de trabajo del técnico encargado de realizar los desarrollos para la tienda online del cliente.

Entorno de preproducción:Donde se comparten todos y cada uno de los nuevos desarrollos para ser testados y verificados por el cliente del servicio.

Entorno de producción:Donde se aloja la tienda on line en Magento alcanzable para los clientes del servicio finales

Para el caso de Magento, los ambientes de preproducción y producción están constituidos por servidores basados en linux. Pero el entorno de desarrollo local es diferente según el programador. Cada uno de los desarrolladores que participan en un proyecto puede contar con un equipo absolutamente distinto a sus compañeros. Hay desarrolladores trabajando en OSX, en windows o en cualquiera de las distintas distribuciones de linux. En esta nueva entrada del blog vamos a hablar de Vagrant. Vagrant es una herramienta gratis que nos permitirá aunar los entornos de desarrollo locales de nuestro equipo de programación independientemente del sistema operativocon el que trabaje el departamento técnico.

 

Vagrant: Ventajas de emplear Vagrant como ambiente de desarrollo.

Como hemos comentado cada desarrollador puede trabajar bajo un diferente sistema operativo. Es mas, aunque trabajaran bajo un mismo ambiente, lo ideal es que trabajaran para un proyecto en concreto bajo una contesta de la trama de desarrollo y preproducción en lo que se refiere a configuración del servidor. Vagrant nos va a permitir que nuestro ambiente de desarrollo local pueda ser una replica exacta de la configuración del servidor de preproducción y producción. Como se observa los beneficios de trabajar con Vagrant son las siguientes:

  • Vagrant permite aunar la configuración de todos y cada uno de los ambientes de trabajo: local, preproducción y producción.
  • Vagrant nos deja configurar directorios compartidos entre la máquina local y el ambiente virtual. Si cualquier cambio relaizado en el directorio local de nuestro equipo se verá reflejado en la máquina virtual.
  • Vagrant nos servirá para poder realizar y probar modificaciones y optimizaciones en la configuración de nuestro servidor de desarrollocon la tranquilidad de poder efectuar estas modificaciones previamente en nuestros ambientes locales y de preproducción disminuyendo los tiempos finales de desarrollo en la máquina de producción. De este modo conseguimos probar el correcto comportamiento de nuestra tienda con la nueva configuración.
  • Vagrant permite trabajar con múltiples lenguajes de programación, servidores, bases de datos, etc.Permitiendo desarrollar múltiples tipologías de proyectos web.
  • Vagrant dispone de multitud de cajas o boxes que emularán el servidor de producción.Cada uno de nuestros proyectos puede cargar la caja precisa y tener su configuración permitiéndonos una adaptación total a cada uno de nuestros proyectos.

 

Vagrant: Instalación y configuración de Vagrant como ambiente de desarrollo local

Para instalar y configurar Vagrantcomo ambiente de desarrollo local los pasos que debemos continuar son:

  • Descarga y también instalación de Vagrant:
  • Descarga y también instalación de Virtual box:

Una vez tenemos instalados Vagrant y Virtual Box comenzamos los pasos a seguir son:

Creación de Vagrantfile

Para crear el archivo vagrantfile nos situamos en el directorio de desarrollo y ejecutamos el comando Vagrant init. Esto creará el archivo vagrantfile en el directorio. En nuestro caso añadimos hashicorp/precise32 que es el box que queremos emplear como entorno de desarrollo virtual

Para levantar el entorno virtual con vagrantejecutamos el comando:

Si quisiéramos apagar la máquina virtual con vagrantejecutaríamos el comando:

Para acceder vía ssh con vagranta nuestra máquina virtual ejecutamos el comando

Como se puede observar ya estamos dentro de nuestra máquina virtual. ¡Así de fácil!

Seleccionando nuestra caja

Con el comando vagrant init hashicorp/precise32 hemos asignado la caja hashicorp/precise32 a nuestro vagrantfile. Sin embargo podemos escoger entre multitud de cajas para nuestro proyecto. una caja o box no es mas que la imagen que se toma como referencia para la creación de la máquina virtual que queremos emplear.

encontrarás multitud de cajas entre las que seleccionar y poder así reproducir multitud de ambientes con diferentes configuraciones. Para nuestro ejemplo optaremos por la caja chef/centos-6.5 basada en CentOS sesenta y cinco x64. Para añadir la caja ejecutamos el siguiente comando

Tras ejecutar el comando, escogemos como proveedor al opción de virtualbox. Tras esto la caja se descargará y será almacenada por vagrant para poder ser reutilizada.

Si quisiéramos emplear esta nueva caja descargada tan solo deberíamos editar el fichero vagrant archivo y actualizar la línea de config.vm box a:

Para ver el listado de todas nuestros boxes con vagrantbasta con ejecutar el comando vagrant box list:

 

Cargando nuestra aplicación web local en la máquina virtual con vagrant

En nuestro caso optamos por emplear el box inicial para llevar a cabo nuestra prueba. Desde el archivo vagrantfile asignaremos a la máquina virtual una dirección ip . Para esto descomentamos y editamos las próximas líneas con estos valores:

La asignación de la ip puede ser una ip pública o privada. para nuestro ejemplo optamos por asignar una ip privada

Ahora podemos editar nuestro fichero host y asignarle por servirnos de un ejemplo el dominio a la ip 192.168.33.10. De esta manera cada vez que carguemos vamos a estar accediendo a la máquina virtual. Para que estos cambios tengan efecto debemos ejecutar el comando vagrant reload si nuestra máuina virtual ya estaba levantada o volverla a levantar con le comando vagrant up si no lo estaba. Si tras editar nuestro host introducimos la URL nos encontraremos con este pantallazo:

No nos atemoricemos por ello, estamos en el buen camino. Hemos conectado con el puerto ochenta de nuestra máquina virtual. Pero en ella no tenemos absolutamente nada, así que obciamente no podemos cargar nada. Procedamos a instalar Apache en nuestra máquina virtual.

Accedemos a nuestra máquina virtual:

Actualizamos los paquetes:

Instalamos apache

Tras la instalación, si ahora cargamos nuevamente en nuestro navegador el resultado es:

Como podéis observar la URL devuelve el index.html de nuestra máquina virtual. Podemos configurar la trama virtual con Nginx, varnish, memcache etc y acceder a ella desde nuestro equipo local sin inconvenientes. Pero además podemos instalar nuestro Magento en el equipo local para que sea cargado por la máquina virtual. Desde el fichero vagrantfile tenemos la opción de comunicar carpetitas entre la máquina local y la virtual con la opción config.vm.synced_folder.

Por defecto, el directorio /vagrant en la máquina virtual, tiene exactamente el mismo Vagrantfile que se encuentra en nuestro equipo local. Cualquier cambio que realicemos en este directorio será compartido entre las dos máquinas.Como veis la flexibilidad de vagrant es realmente pasmosa. Otra de las funcionalidades señaladas es la posibilidad de compartir el acceso,encontrareis mas información sobre el tema.

En nuestro caso nos interesa trabajar con Magento en nuestro equipo local que es donde tenemos instalado todas nuestras herramientas de desarrollo. Sabiendo que el directorio que comparte el vagrantfile es compartido por nuestro entorno local y la máquina virtual, podemos hacer que Apache lea de nuestro directorio de trabajo local fácilmente mediante un simple link:

Recordemos que vagrant tambien dispone y también la herrmaienta para acompasar carpetas, por consiguiente también podrimaos logran esta meta editando el vagrantfile

Los parámetros del comando son:

  • Parámetro 1: Directorio de nuestro ambiente local a compartir. En nuestro caso “./” -el directorio que contiene el vagrant archivo-.
  • Parámetro 2: Directorio del entorno virtualizado a compartir. En nuestro caso “/var/www”.
  • Parámetro 3: Con create: true, si el directorio de la máuina virtual no existe se creará.
  • Parámetro 4: group: “” es el grupo al que pertenece el directoio compartido en la máquina virtual.
  • Parámetro 5: owner: “” Igual que el parámetro cuatro pero en este caso para el usuario.

Si ahora introducimos un index.html con el contenido “Entornos de desarrollos virtualizados con Vagrant” en nuestro directorio de trabajo:

y recargamos nuevamente la URL de nuestra máquina virtual:

Podemos observar como apache está leyendo de nuestro directorio de trabajo. Perfecto, tras instalar Mysql y Magento ya estaríamos trabajando en nuestro entorno local sin inconvenientes.

Hasta ahora, estos pasos los hacemos de una forma manual, mas sería muy útil contar también mecanismos de automatización que ejecutaran ciertas tareas, para ello contamos con las provisiones de Vagrant(Pero info sobre Vagrant). Las provisiones se ejecutan en el primer vagrant up que crea el ambiente virtual. No obstante, podemos forzar su ejecución con el próximo comando:

Para el ejemplo que nos ocupa vamos a instalar phph usando shell provisioner. Para ello añadimos la siguiente línea a nuestro vagrant file

Cuando se ejecute la provisión ejecutara las lineas de ejemplo.sh en las que básicamente actualizamos e instalamos php y algunas extensiones:

Vagrant: Creación de ambientes virtuales con Puphpet

Como hemos visto vagrant es una herramienta muy potente que nos deja emplear ambientes de desarrollos virtualizados a partir de máquinas virtuales. El hecho de poder compartir directorio entre las dos máquinas nos ayuda a desarrollar nuestro proyecto ecommerce en local y cargarlo en nuestra máquina virtual. Vagrant es una herramienta muy útil ya que nos permite particularizar nuestra máquina virtual como deseemos. Sin embargo hay herramientas como Puphpet que nos ahorrarán tiempo para la configuración de nuestra máquina virtual. por servirnos de un ejemplo, en le caso anterior hemos partido de una máquina virtual por defecto a la que le podemos añadir todo cuanto necesitemos para clonar nuestro ambiente de producción. Esta parte es de gran interés puesto que nos permite practicar a nivel de configuración de servidores sin embargo también seria muy útil contar con gran parte de la configuración base de nuestro entorno configurada y adaptada a nuestras necesidades. Con Puphpet conseguimos este propósito. En el siguiente video vemos como cargar una instalación de Magento mediante Puphpet y Vagrant

Vagrant: Conclusiones configuración de Vagrant como entorno de desarrollo local.

Vagrant es una genial herramienta para la creación de ambientes de desarrollos virtuales, especialmente útil para probar el correcto funcionamiento de nuestros desarrollos locales en una configuración del servidor exactamente idéntica al servidor de producción final. Instalar y configurar Vagrant para nuestros desarrollos en Magento nos ayudará a prevenir futuros inconvenientes de compatibilidades o bien funcionamientos finales no deseados. Además, Vagrant es una genial opción para fortalecer nuestros conocimientos en la configuración del servidor que alojará nuestra tienda en línea, brindándonos un entorno local de pruebas fácilmente configurable. Desde especialista en Magento os animo a que optéis por esta fantástica herramienta de trabajo para vuestros desarrollos locales

Vagrant Magento: Instalación y configuración de ambientes de desarrollos virtuales

Vagrant Magento: Instalación y configuración Vagrant. Tutorial emplear Vagrant para entorno de desarrollo Magento. Vagrant: Entornos de desarrollo virtuales.

Especialista en Magento y servicios ecommerce: Consultoría ecommerce, Optimización Magento, Desarrollo Magento, Integración Magento ERP y Posicionamiento web en buscadores Magento.

Share icon

ESTOS EXCLUSIVOS INFORMES GRATUITO REVELAN

7 SECRETOS DE EXPERTOS SEO QUE TE LLEVÁN AL 1#
7 SECRETOS DE EXPERTOS SEO QUE TE LLEVÁN AL 1# EN GOOGLE PARA GANAR 10.000s DE TRÁFICO DE CALIDAD GRATUITO - EN SÓLO 2 MESES
 

Los 7 pasos más poderosos para disparar tu ranking orgánico para ALCANZAR Y MANTENER un impresionante tráfico orgánico es TUYO.

Consigue gratis lo que el 1% de los expertos en SEO venden por miles de euros... y el otro 99% ni siquiera sabe que existe.


OBTEN MI INFORME GRATUITO
5 errores que debes evitar en tu sitio web de Drupal
Ebook - 5 errores que debes evitar en tu sitio web de Drupal (¡podrían costarte miles de euros!)
 

Este Ebook cubre 5 terribles errores que probablemente estés cometiendo ahora mismo con tu sitio web de Drupal.

¡Nº3 TE SORPRENDERÁ! Esta lectura de 10 minutos te ahorrará miles de euros.



OBTEN MI INFORME GRATUITO