Prácticas con Ansible
Prácticas con Ansible
Práctica 1: Instalación de un servidor web apache en una máquina virtual
Puedes encontrar los ficheros que vamos a usar en esta práctica en el siguiente directorio del respositorio del curso.
-
Instalar ansible
root@maquina:~$ apt-get install python-pip python-dev root@maquina:~$ pip install ansible
-
Creamos con vagrant la máquina virtual
usuario@maquina:~/practica1$ vagrant up
-
Veamos algunos ficheros importantes en nuestro escenario:
- ansible.cfg: Configuramos los parámetros (clave ssh y usuario) para acceder a las máquinas.
- ansible_hosts: Definimos las máuinas de nuestro escenario.
- escenario.yaml: receta principal, donde se indican las distintas recetas que encontramos en el directorio playbooks.
-
Ejecutamos la receta principal:
usuario@maquina:~/practica1$ chmod 600 vagrant_private_key usuario@maquina:~/practica1$ ansible-playbook escenario.yaml
Las tareas que se realizan son las siguientes:
- Se actualiza el repositorio de paquetes en nuestra máuina virtual (playbooks/common.yaml).
- Se instala apache2 en la máuina virtual (playbooks/webservers.yaml)
- Se copia un fichero index.html en el DocumentRoot del servidor web (playbooks/webservers.yaml)
-
Podemos probar que el servidor web funciona accedeiendo a la URL:
http://10.1.1.101
Práctica 2: Balanceador DNS
Puedes encontrar los ficheros que vamos a usar en esta páctica en el siguiente repositorio.
Utilizando entradas tipo A duplicadas en un servidor DNS es posible realizar de forma muy sencilla un balanceo de carga entre varios equipos, esto se conoce como DNS round robin.
-
Levantar el escenario:
usuario@maquina:~/practica2$ vagrant up
En este caso vamos a realizar un balanceo de carga entre dos servidores web, para lo que creamos un escenario con tres equipos:
- nodo1: 10.1.1.101 <- Servidor web
- nodo2: 10.1.1.102 <- Servidor web
- dns: 10.1.1.103 <- Servidor DNS
-
Configuración del escenario:
usuario@maquina:~/practica2$ chmod 600 vagrant_private_key usuario@maquina:~/practica2$ ansible-playbook escenario.yaml
-
Prueba de funcionamiento
Si no ha habido errores durante la ejecución de los playbooks, se puede comprobar que se realiza el balanceo www.example.com entre nodo1 y nodo2, repitiendo la consulta DNS con dig:
dig @10.1.1.103 www.example.com
También puede verse de forma mucho más clara a través del navegador, para lo cual es necesario añadir la dirección IP como servidor DNS primario la dirección 10.1.1.103 y podremos comprobar como se balancean las peticiones entre los dos servidores web nodo1 y nodo2 (es necesario forzar la recarga, CTRL+F5 por ejemplo).