1 Followers
24 Following
heartopera38

heartopera38

SPOILER ALERT!

Vagrant Magento

Vagrant Magento: Configurar e instalar entornos de desarrollo virtuales


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



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



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



Entorno de producción:Donde se aloja la tienda virtual en Magento accesible para los clientes del servicio finales


Para el caso de Magento, los entornos 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 totalmente diferente a sus compañeros. Hay desarrolladores trabajando en OSX, en windows o en cualquiera de las diferentes distribuciones de linux. En esta nueva entrada del blog hablaremos de Vagrant.
Vagrant es una herramienta gratuita que nos permitirá aunar los entornos de desarrollo locales de nuestro equipo de programación con independencia 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 agencia de marketing digital y social media . Es pero, si bien trabajaran bajo un mismo ambiente, lo idóneo es que trabajaran para un proyecto específicamente 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 dejar que nuestro entorno de desarrollo local pueda ser una contesta exacta de la configuración del servidor de preproducción y producción. Como se observa las ventajas de trabajar con Vagrant son las siguientes:



  • Vagrant deja unificar la configuración de todos los entornos 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 anteriormente en nuestros ambientes locales y de preproducción reduciendo los tiempos finales de desarrollo en la máquina de producción. De esta forma conseguimos probar el correcto comportamiento de nuestra tienda con la nueva configuración.

  • Vagrant deja 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 bien boxes que emularán el servidor de producción.Cada uno de nuestros proyectos puede cargar la caja necesaria 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 e instalación de Vagrant:
  • Descarga e instalación de Virtual box:

Una vez tenemos instalados Vagrant y Virtual Box empezamos los pasos a proseguir son:


Creación de Vagrantfile


Para crear el archivo vagrantfile nos ubicamos en el directorio de desarrollo y ejecutamos el comando Vagrant init. Esto creará el fichero vagrantfile en el directorio. En nuestro caso añadimos hashicorp/precise32 que es el box que deseamos 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 via ssh con vagranta nuestra máquina virtual ejecutamos el comando


Como se puede observar ya estamos en 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 bien 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-sesenta y cinco basada en CentOS sesenta y cinco x64. empresas para hacer paginas web añadir la caja ejecutamos el siguiente comando


Tras ejecutar el comando, escogemos como distribuidor al opción de virtualbox. Tras esto la caja se descargará y será guardada por vagrant para poder ser vuelta a utilizar.


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


Para
ver el listado de todas y cada una 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 realizar nuestra prueba. Desde el archivo vagrantfile asignaremos a la máquina virtual una dirección ip . Para ello descomentamos y editamos las siguientes 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 archivo host y asignarle por poner un ejemplo el dominio a la ip 192.168.33.10. De esta forma toda 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 asustemos por esta razón, estamos en el buen camino. Hemos conectado con el puerto ochenta de nuestra máquina virtual. Mas en ella no tenemos 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 de nuevo 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. Mas además podemos instalar nuestro Magento en el equipo local a fin de que sea cargado por la máquina virtual.
Desde el fichero vagrantfile tenemos la opción de comunicar carpetas 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 el mismo Vagrantfile que se encuentra en nuestro equipo local. Cualquier cambio que realicemos en este directorio será compartido entre las 2 máquinas.Como veis la flexibilidad de vagrant es verdaderamente pasmosa. Otra de las funcionalidades destacadas es la posibilidad de compartir el acceso,encontrareis pero 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 ambiente local y la máquina virtual, podemos hacer que Apache lea de nuestro directorio de trabajo local fácilmente a través de un simple link:


Recordemos que vagrant también dispone y también la herrmaienta para acompasar carpetitas, en consecuencia también podrimaos logran este objetivo 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 4 mas en un caso así 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 de nuevo 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 manera manual, pero
sería muy útil contar también mecanismos de automatización que ejecutaran ciertas tareas, para ello contamos con las provisiones de Vagrant(Mas 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 siguiente comando:


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


Cuando se ejecute la provisión ejecutase las líneas de ejemplo.sh en las que básicamente actualizamos y también instalamos php y ciertas extensiones:



Vagrant: Creación de entornos virtuales con Puphpet


Como hemos visto vagrant es una herramienta muy potente que nos deja emplear ambientes de desarrollos virtualizados desde máquinas virtuales. El hecho de poder compartir directorio entre ambas máquinas nos ayuda a desarrollar nuestro proyecto ecommerce en local y cargarlo en nuestra máquina virtual. Vagrant es una herramienta muy útil en tanto que nos permite particularizar nuestra máquina virtual tal como deseemos. No obstante hay herramientas como Puphpet que nos ahorrarán tiempo para la configuración de nuestra máquina virtual. por poner un ejemplo, en le caso precedente hemos partido de una máquina virtual por defecto a la que le podemos añadir todo lo que precisemos para clonar nuestro entorno de producción. Esta parte es de gran interés pues nos permite practicar a nivel de configuración de servidores no obstante también seria muy útil contar con gran parte de la configuración base de nuestro ambiente configurada y adaptada a nuestras necesidades. Con Puphpet logramos esta meta. En el próximo vídeo vemos como cargar una instalación de Magento a través de Puphpet y Vagrant


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


Vagrant es una genial herramienta para la creación de entornos de desarrollos virtuales, singularmente ú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 excelente opción para fortalecer nuestros conocimientos en la configuración del servidor que alojará nuestra tienda online, brindándonos un ambiente 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 usar Vagrant para ambiente de desarrollo Magento. Vagrant: Ambientes de desarrollo virtuales.


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