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

Solicita información sin compromiso

Políticas de privacidad

De conformidad con lo dispuesto en la Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal (LOPD) y su normativa de desarrollo, el responsable del sitio web, CITIFACE MANAGEMENT, S.L., en cumplimiento de lo dispuesto en el art. 5 y 6 de la LOPD, informa a todos los usuarios del sitio web www.citiface.com que faciliten, o vayan a facilitar sus datos personales, que estos serán incorporados a un fichero que se encuentra debidamente inscrito en la Agencia Española de Protección de Datos.

Consentimiento del usuario:
Mediante la marcación de las correspondientes casillas, en los formularios dispuestos en el sitio web para la recogida de datos, los usuarios aceptan expresamente y de forma libre e inequívoca que sus datos personales sean tratados con las finalidades y destinos que se detallarán a continuación.

Finalidad
Los datos que se faciliten a través del portal, se destinarán a la finalidad de responder a su solicitud de información, así como a remitirle información que consideremos que pueda ser de su interés. Incluyendo para ello medios electrónicos (email, sms, etc..). Asimismo, y si usted nos lo indica, le remitiremos a su correo electrónico nuestro boletín electrónico SEO/SEM en el que le trasladaremos recomendaciones y herramientas para la mejora de sus campañas de posicionamiento y pago por clic. Los envíos serán con carácter mensual y podrá dejar de recibirlos en cualquier momento a través del mecanismo establecido en el propio email.

Calidad de datos
Los datos marcados como obligatorios en el formulario que usted cumplimente, son necesarios para la prestación de un servicio óptimo al usuario y dar respuesta a sus requerimientos. En caso de que no sean facilitados todos los datos obligatorios, el prestador no garantiza la prestación de los servicios solicitados.
El usuario será el único responsable, respecto a la veracidad y actualización de los datos aportados a través de los distintos formularios del sitio web

Comunicación de datos a terceros
Sus datos personales no serán cedidos, en ningún caso, a terceras compañías, y que siempre que fuera a realizarse algún tipo de cesión de datos personales, de forma previa, se solicitaría el consentimiento expreso, informado, e inequívoco por parte de los titulares. Ejercicio de derechos ARCO
El prestador garantiza en todo caso al usuario el ejercicio de los derechos de acceso, rectificación, cancelación, información y oposición, en los términos dispuestos en la legislación vigente. Por ello, de conformidad con lo dispuesto en la LOPD, podrá ejercer sus derechos remitiendo una solicitud expresa, junto a una copia de su DNI, a través del correo electrónico: info[at]citiface.com o Calle Farell 3, 1-1. 08014 Barcelona .

Medidas de seguridad
Del mismo modo, el prestador, conforme a lo establecido en el Real Decreto 1720/2007, de 21 de diciembre, por el que se aprueba el Reglamento de desarrollo de la L.O. 15/1999, indica que ha adoptado todas las medidas técnicas y organizativas necesarias para garantizar la seguridad e integridad de los datos de carácter personal que trate, así como para evitar su pérdida, alteración y/o acceso por parte de terceros no autorizados.

Menores de edad
Se prohíbe, expresamente, a los menores de 14 años, facilitar ningún dato a través del presente sitio web, sin contar con el consentimiento y supervisión de sus padres o tutores legales.
Si el prestador tuviera noticia acerca de la infracción de la referida prohibición, procederá a la eliminación de cualquier dato asociado al usuario en cuestión.

Uso de cookies y del fichero de actividad
El prestador por su propia cuenta o la de un tercero contratado para la prestación de servicios de medición, pueden utilizar cookies cuando un usuario navega por el sitio web. Las cookies son ficheros enviados al navegador por medio de un servidor web con la finalidad de registrar las actividades del usuario durante su tiempo de navegación.
Las cookies utilizadas por el sitio web se asocian únicamente con un usuario anónimo y su ordenador, y no proporcionan por sí mismas los datos personales del usuario.
Mediante el uso de las cookies resulta posible que el servidor donde se encuentra la web, reconozca el navegador web utilizado por el usuario con la finalidad de que la navegación sea más sencilla, permitiendo, por ejemplo, el acceso a los usuarios que se hayan registrado previamente, acceder a las áreas, servicios, promociones o concursos reservados exclusivamente a ellos sin tener que registrarse en cada visita. Se utilizan también para medir la audiencia y parámetros del tráfico, controlar el progreso y número de entradas.
Puede Usted rechazar el tratamiento de los datos o la información rechazando el uso de cookies mediante la selección de la configuración apropiada de su navegador, sin embargo, debe Usted saber que si lo hace puede ser que no pueda usar la plena funcionabilidad de este website.
Este sitio web utiliza Google Analytics, un servicio analítico de web prestado por Google, Inc., una compañía de Delaware cuya oficina principal está en 1600 Amphitheatre Parkway, Mountain View (California), CA 94043, Estados Unidos («Google»). Google Analytics utiliza «cookies», que son archivos de texto ubicados en su ordenador, para ayudar al website a analizar el uso que hacen los usuarios del sitio web. La información que genera la cookie acerca de su uso del website (incluyendo su dirección IP) será directamente transmitida y archivada por Google en los servidores de Estados Unidos. Google usará esta información, por cuenta nuestra, con el propósito de seguir la pista de su uso del website, recopilando informes de la actividad del website y prestando otros servicios relacionados con la actividad del website y el uso de Internet.
Google podrá transmitir dicha información a terceros cuando así se lo requiera la legislación, o cuando dichos terceros procesen la información por cuenta de Google. Google no asociará su dirección IP con ningún otro dato del que disponga Google.
Puede Usted rechazar el tratamiento de los datos o la información rechazando el uso de cookies mediante la selección de la configuración apropiada de su navegador, sin embargo, debe Usted saber que si lo hace puede ser que no pueda usar la plena funcionalidad de este website. Al utilizar este website Usted consiente el tratamiento de información acerca de Usted por Google en la forma y para los fines arriba indicados. En todo caso, le informamos que para instar a la cancelación de los posibles tratamientos de datos llevados a cabo por Google, deberá dirigirse a esa compañía, a tal efecto. El prestador no tiene la capacidad técnica ni legal, para proceder al cese en el tratamiento de datos fuera del ámbito delimitado por los ficheros y medios técnicos de su titularidad. Y no se le podrán exigir responsabilidades en este sentido. Para conocer más acerca de las cookies es.wikipedia.org/wiki/Cookie_(informática)

SEMrush

SEMrush

SEMrush

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