
Introducción al curso. Explicación de como ayuda Vagrant en la simplificación de los entornos de trabajo (entornos de desarrollo)
¿Que es Vagrant?
¿Para que nos sirve?
¿Como funciona?
¿A quién esta dirigido?
Como contar con un entorno GNU/Linux completamente funcional ejecutando solo 2 comandos. La magia de 'vagrant init' y 'vagrant up'.
Creación de un entorno Centos 7.
Creación de un entorno Ubuntu Bionic 18.04
Conceptos básicos de virtualización.
Terminología utilizada en Vagrant
Guest (invitados)
Host (anfitrión)
Provider (proveedor)
Descripción de los proveedores más utilizados (Virtuabox, VMWare, Docker, Hyper-V, etc).
Como instalar Vagrant y Virtualbox en un entorno GNU/Linux
Instalar Vagrant y virtualbox en Windows 10
Creación de maquinas virtuales, explicado paso a paso
Como acceder a las maquinas virtuales recién creadas, por medio de un único comando
Comando vagrant halt, y explicación de las diferentes formas de apagar una maquina virtual.
Uso del comando vagrant status e inicio de una maquina virtual detenida.
Suspención y reanudación de una maquina virtual
Destrucción de una maquina virtual por medio del comando vagrant destroy. Regeneración de la misma y verificación global de las maquinas corriendo en el anfitrión por medio del comando "vagrant global-status"
Como se procesa el archivo Vagrantfile. Opciones especificas(de los proveedores) y opciones globales.
Opciones gloables:
Cambiar el hostname de la maquina virtual
Definir opciones especificas de virtualbox:
Cambiar memoria RAM asignada a la maquina virtual
Definir cantidad de CPUs que tendrá la maquina virtual
Definir nombre de la maquina virtual en Virtualbox
Detalle de las 3 formas de configurar la red en vagrant. Determinado de este modo como se accederá a las maquinas virtuales creadas por medio de Vagrant
Acceder a las maquinas virtuales por medio de el reenvío de puertos en el anfitrión
Como configurar a las maquinas virtuales en una red privada. Definición y alcance de las redes privadas. Uso de las mismas.
Definición de redes públicas. Uso de las mismas y configuración en vagrant.
¿Que és el aprovisionamiento?
Formas de aprovisionamiento
Aprovisionar las maquinas virtuales mediante vagrant
Ejecutar comandos de bash dentro del vagrantfile, para instalar entre otras cosas, software en las maquinas virtuales
Aprovisionar mediante un script de bash externo. Cuando conviene su uso, y como hacerlo
Introducción a al idempotencia. Como convertir nuestros scripts de bash en idempotentes.
Introducción a Ansible (mínima).
Reescritura del script de bash en Ansible
Aprovisionamiento en vagrant mediante Ansible
Detalles del ejemplo que se instalara y pasos a seguir en la instalación desde cero de un joomla, mediante el uso de Vagrant
Creación del directorio de trabajo
Inicialización de vagrant (vagrant init)
Definición del box a utilizar
Configuración de los parámetros globales y particulares
Configurar una red privada para comunciar la maquina virtual y el anfitrión
Sincronizar el directorio src en el anfitrión con el directorio /var/www/html en la maquina virtual, para no tener que acceder a la Maquina Virtual y gestionarlo desde el anfitrión
Aprovisionamiento de la maquina virtual mediante Ansible.
Acceso al frontend de instalación de joomla y configuración de los parametros requeridos por joomla
Ejemplo completo de instalación de un Joomla, utilizando 2 máquinas virtuales, una para el servidor web y otra para el servidor de bases de datos.
Paso a paso, como contar con una maquina virtual que ya tenga la base de datos de joomla inicializada mediante un dump de sql.
Aprenderás en profundidad como utilizar esta magnífica herramienta para crear entornos de desarrollo de una manera muy simple, portable y reutilizable.
A lo largo del curso aprenderás a medida que haces.
Al finalizar serás capaz de montar entornos de desarrollo que incluirán múltiples máquinas virtuales, de una manera muy sencilla y eficaz, ahorrándote un montón de tiempo y evitando problemas del tipo "en mi PC funciona". Estos entornos podrán ser utilizado por todos los integrantes de tu equipo de desarrollo (DevOps, Desarrolladores de software, Arquitectos de software, Diseñadores Web, Testers, etc), sin importar los conocimientos en la materia que estos tengan.