Despliegue rápido de un sitio web usando Vagrant + VirtualBox + Ansible + DockerCompose + Nginx
- Version VirtualBox: 5.2-5.2.8_121009
- Version Vagrant: 2.0.3
- Instalar VirtualBox & Vagrant (si no están instalado ya)
- Clonar el repo devops-challenge con
# git clone https://github.com/marcossv9/devops
y colóquelo en el directorio desde el que desea iniciar la VM. - Navegar al directorio de repo local e inicie la VM con Vagrant usando el comando
# vagrant up
- Pruebe el sitio web usando un navegador de preferencia y vaya a la siguiente URL desde su máquina Host: http://127.0.0.1:8080
- A disfrutar!
Instalar VirtualBox
-
Vaya a descargas y descargue e instale la versión de VBOX para su sistema operativo.
-
En mi caso, descargué el archivo.
-
Yo lo instalé con el comando
# sudo zypper in VirtualBox-5.2-5.2.8_121009_openSUSE132-1.x86_64.rpm
Instalar Vagrant
-
Vaya a descargas y siga los pasos para instalar Vagrant en su sistema operativo preferido.
-
En este caso, uso OpenSuseLEAP para lo que el comando que usé fue
# sudo zypper in vagrant_2.0.3_x86_64rpm
Crear un directorio donde vas a trabajar con Vagrant
- Los comandos en orden son:
# mkdir Vagrant-Project
y luego moverse al directorio con el comando# cd Vagrant-Project
Iniciar Vagrant para generar un Vagrantfile en el directorio actual
- Utilizar el comando
# init vagrant
Editar el Vagrantfile para definir una VM con Docker Engine y Docker-compose. A continuación se ejecutará un Ansible-playbook local para iniciar dos Contenedores Docker dentro de la VM utilizando Docker Compose
- Aquí está el archivo Vagrant con comentarios para entender cada línea del mismo.
Crear dos Dockerfile que Docker Compose ejecutará para correr un sitio web y un servidor proxy
-
Crear una carpeta para Docker Compose donde va a alojar dos Dockerfile, uno para el servidor web y otro para el servidor proxy. Usar el comando
# mkdir compose
-
Luego, dentro de la carpeta ¨compose¨ crear 2 carpetas en el nivel raíz del directorio ¨Vagrant-Project¨. Ejecutar lo siguientes comandos en orden:
# mkdir app
y# mkdir proxy
-
Dentro de la carpeta "app" crear un archivo llamado "Dockerfile" y escibir el siguiente código dentro de él:
-
También descargue y copie en el directorio ¨app¨, el contenido del directorio ¨site¨, el cual contendrá nuestra página web de pruebas. El link de descarga es éste.
-
Ahora dentro de la carpeta "proxy" crear un archivo llamado "Dockerfile" y escribir el siguiente código dentro de él:
-
Crear también un archivo llamado "proxy.conf" dentro de la carpeta ¨proxy¨, que contenga toda la configuración del proxy para NGINX. Se debe usar este código.
Crear un archivo Docker Compose para crear y ejecutar los Contenedores definidos en los Dockerfile creados antes
- Dentro de la carpeta ¨compose¨ crear un archivo llamado ¨docker-compose.yml¨ con este código adentro.
Configurar Ansible-playbook para aprovisionar cambios en la máquina virtual al inicio
- Crear un archivo en el directorio raíz del projecto (Vagrant-Project) y llamarlo ¨playbook.yml¨ y escribir el código que aquí se menciona.
Crear la VM con todo lo descrito antes
- Tienes que moverte a la carpeta ¨Vagrant-Project¨ y ejecutar el siguiente comando
# sudo vagrant up
Probar el sitio web
- Pruebe el sitio web usando un navegador de preferencia y vaya a la siguiente URL desde su máquina Host:
- Template de website descargado del siguiente link