Por qué molestarse?
Hashicorp, la compañía detrás de Vagrant mantiene un repositorio de muchos Cajas de vagabundos que son imágenes de máquinas virtuales preconfiguradas a partir de las cuales puede generar cualquier cantidad de máquinas virtuales localmente. Resuelve dos problemas:
- Como todo el mundo empieza con la misma imagen, los desarrolladores pueden deshacerse de Funciona en mi máquina excusa, donde una determinada aplicación funcionaría perfectamente en una máquina, pero no en otra. Todos se desarrollan en diferentes máquinas, pero se ejecutan exactamente en la misma configuración de máquina virtual.
- No tiene que realizar una instalación repetida de máquinas virtuales si decide deshacerse de las antiguas. Vagrant se encarga de toda la instalación y configuración de su VM. Todo, desde la asignación de almacenamiento y memoria hasta la creación de usuarios que configuran permisos.
En muchos sentidos, es similar a las imágenes de Docker y resuelve problemas similares, con la diferencia clave de que utiliza máquinas virtuales en lugar de contenedores, lo que la convierte, decididamente, en una alternativa más pesada y lenta. Sin embargo, las máquinas virtuales vienen con sus propias ventajas, como una mejor pila de redes y más flexibilidad en términos de elección del sistema de archivos, etc., lo que permite a Vagrant llenar un nicho particular de las máquinas virtuales portátiles.
Entonces empecemos!
Prerrequisitos
El primer y más importante requisito es la instalación de VirtualBox, después de lo cual debe instalar Vagrant. Si ya tiene VirtualBox instalado, obtenga este último. El proceso de instalación puede diferir ampliamente según el sistema operativo que esté ejecutando su host, por lo que le insto a que consulte los documentos oficiales para ello:
- Obtén VirtualBox aquí
- Consigue Vagrant aquí
Además, si está utilizando Windows, necesitaría un cliente SSH, es posible que desee instalar Git Bash, que funciona perfectamente en Windows con las opciones de instalación predeterminadas.
1. Cajas de vagabundos
Vagrant Box es el término para máquinas virtuales administradas por Vagrant. Puede obtener cajas Vagrant que contienen solo el sistema operativo como Ubuntu, CentOS, etc. O pueden contener una pila LAMP preconfigurada, una pila MEAN u otra instalación de software que podría facilitar su proceso de desarrollo y prueba.
Por ejemplo, si está escribiendo un tema de WordPress, puede obtener un cuadro de Vagrant con el núcleo de WordPress ya ejecutándose en él. Puede compartir la carpeta de su proyecto donde tiene el contenido de su tema con esta VM. Comprueba si el nuevo tema funciona como esperabas. Una vez que haya terminado con el tema, simplemente elimine el cuadro dejando solo los archivos del proyecto que ahora sabe que funcionarían bien en el mundo real.
Puedes explorar estos recuadros aquí. Vamos a empezar con un Ubuntu 16 simple.Caja 04 LTS. Puedes verlo listado como ubuntu / xenial64, si visita el enlace de arriba.
Abre tu terminal y crea una carpeta para tus experimentos de Vagrant.
$ mkdir vagrant_box$ cd vagrant_box
En esta carpeta, podemos inicializar nuestro entorno Vagrant ejecutando:
$ vagrant init
Esto coloca un Vagrantfile dentro de la carpeta que es esencialmente un script Ruby que describe la configuración de su Vagrant Box. No necesita saber Ruby para usar este archivo, la sintaxis es bastante simple. Cubriremos lo esencial a medida que avanzamos.
Ahora puede ejecutar el comando vagrant up y, como lo está ejecutando por primera vez, tendrá que descargar la imagen de la máquina virtual desde la aplicación.vagabundo.com. Es posible que tarde un poco en función de su conexión a Internet, pero una vez que se descarga, vagabundo comandos para similares vagabundo init ubuntu / xenial64 no tomará tanto tiempo porque la imagen ahora está guardada localmente en su computadora. Asegúrese de estar en el mismo directorio (vagrant_box) donde se colocó Vagrantfile anteriormente.
$ vagabundoUna vez que esto termine, puede ssh en la caja como el usuario vagabundo con privilegios de root. Simplemente ejecute lo siguiente:
$ vagabundo sshfelicitaciones! Acabas de iniciar sesión en tu primera Vagrant Box. Ahora que lo hemos comenzado, aprendamos algunos comandos básicos de vagabundos antes de profundizar en el Vagrantfile. Solo escribe exit y presiona
Comando vagabundo común
Si desea detener el cuadro en ejecución, ejecute el comando:
$ parada vagabundaPara reiniciar puedes usar vagrant up
Si lo desea, también puede usar
$ vagabundo suspender$ vagrant currículum
Estos suspenderán la VM y la volverán a activar de forma segura. Si realiza cambios en Vagrantfile y desea que aparezcan los cambios, use el comando:
$ vagrant recargaRecuerde ejecutar todo el comando desde el mismo directorio donde se encuentra su Vagrantfile. Puede crear más cajas de vagabundos si crea nuevos directorios en otro lugar y ejecuta init vagabundo en ellos. Los gestionarás desde sus respectivas carpetas. Pueden basarse en el mismo ubuntu / xenial imagen que obtuvimos antes, o puede traer más imágenes.
Para enumerar todas las casillas de vagabundos y su estado (en ejecución o detenido), use el comando:
$ vagrant global-statusPara eliminar una caja vagabunda y todo su contenido privado, desde el directorio de la caja (donde se encuentra su respectivo Vagrantfile) ejecute:
$ vagabundo destruirLa imagen base que descargó anteriormente seguirá existiendo si desea crear nuevos cuadros más adelante. Si desea ver todas las imágenes que se guardan localmente, ejecute:
$ lista de caja vagabundaPara eliminar la imagen del cuadro en sí, ejecute:
$ vagrant box eliminarDespués de esto, tendrá que descargar la caja nuevamente, en caso de que surja la necesidad.
Inspeccionando el Vagrantfile
A primera vista, puede parecer que hay muchas opciones dentro de un Vagrantfile. Si bien eso puede ser cierto, es interesante notar cuánto puede lograr con solo un poco de ajuste.
1. La carpeta compartida
La mayoría de las cajas de vagabundos vienen con carpetas compartidas preconfiguradas. Por ejemplo, si inspecciona el Vagrantfile que creamos la primera vez que ejecutamos init vagabundo notará la entrada, que es una línea comentada,
# config.vm.carpeta_sincronizada "... / datos", "/ vagabundo"Se puede acceder a la carpeta sincronizada tanto por vagrant box como por la máquina host. El primer argumento después config.vm.carpeta_sincronizada indica la ruta a la carpeta en el host y el segundo argumento indica la ruta donde esa carpeta se montará en el cuadro de vagabundo invitado. De forma predeterminada, la carpeta donde creó el Vagrantfile también se comparte con el vagrant box.
Verifiquemos esto, ingresando a nuestra caja de vagabundos.
$ vagabundo sshAquí, enumere los sistemas de archivos.
$ df -h
Puede ver que hay un gran sistema de archivos vagabundo montado en /vagabundo camino. La razón por la que es tan grande es porque la carpeta Vagrantfile en mi máquina host está en una partición que tiene 632GB de grande y la carpeta allí también puede crecer hasta ese tamaño. Dado que es la misma carpeta que se comparte con la caja, proporciona una cantidad increíble de almacenamiento.
Puede inspeccionar el contenido de /vagabundo y son los mismos que ve en su host, es decir, un Vagrantfile y otro archivo de registro.
Puede agregar más carpetas compartidas donde aparece el comentario que explica la sintaxis de la carpeta compartida.
Al igual que,
En este caso, una carpeta llamada Carpeta compartida se agrega, que es un directorio arriba, de ahí el doble punto antes. Esta carpeta está montada en / var / www / html dentro de la caja. Aquí es donde la mayoría de los servidores web como apache y nginx buscan los contenidos web que quieren servir.
Simplemente puede tener sus archivos de proyecto, su html, css y js en Carpeta compartida dónde trabaja en su máquina host utilizando editores de texto gráfico como Atom y VSCode . La caja vagabunda actuará como el servidor de grado de producción que serviría estos archivos.
Ahora la pregunta es, ¿cómo vemos que estos archivos html se sirven como una página web?. Qué nombre de host ingresar en el navegador?
2. Redes
De forma predeterminada, vagrant proporciona algunas configuraciones útiles. La solicitud enviada por su navegador a localhost en el puerto 8080 se reenvía al puerto 80 en su vagrant box. Entonces, si tiene un servidor web ejecutándose en su vagrant box que escucha en el puerto 80 (puerto http estándar), puede ver esa página web visitando http: // localhost: 8080
Por otro lado, es posible que desee evitar todo el reenvío de puertos del host local, en cuyo caso, puede abrir el Vagrantfile y descomentar la siguiente línea:
config.vm.red "red_privada", ip: "192.168.33.10 "Guarde los cambios que realizó y ejecútelos recarga vagabundo para reiniciar la caja con nueva configuración. Ahora tiene una dirección IP privada dedicada 192.168.33.10 a los que solo tu anfitrión puede acceder. Entonces ahora puede abrir el navegador e ingresar http: // 192.168.33.10 y puede ver las páginas web que se sirven en el puerto estándar 80 de http.
Conclusión
Como puede ver, Vagrant puede ayudarlo a ejecutar sus aplicaciones localmente, ya que se ejecutarían en producción, al mismo tiempo que puede trabajar con ellas utilizando IDE y editores de texto que no tendría en un servidor típico. El uso de carpetas compartidas y redes privadas mejora enormemente esta capacidad de Vagrant.
Háganos saber si tiene más preguntas con respecto a este tutorial, o si hay algún otro tema que desea que cubramos.