Ejercicio 3: Playbooks con Roles
En este taller vamos a trabajar con dos servidores. Uno será el servidor web y el otro será el servidor de base de datos.
-
Crear dos máquinas virtuales (con las características indicadas en el ejercicio 1).
-
Vamos a trabajar con el directorio 01_ansible/ejercicio3 del repositorio ejercicios_pi.
-
Rellena el inventario de forma adecuada para definir los dos equipos que vamos a configurar. Debes indicar los nombres de tus máquinas y los parámetros de acceso.
-
Prueba de conectividad. Ejecuta el comando
ansible -m ping allpara asegurarte que puedes conectar con las máquinas. -
Estudia la nueva definición del playbook en el fichero
site.yaml:- El campo
hosts: es el nombre del grupo o máquina en la que se van a ejecutar las tareas del rol. - El campo
roles/rolees el nombre del rol que se va a ejecutar.
Modifica el fichero
site.yamlpara conseguir que se ejecuten los roles como se indica a continuación:- El rol
commons(tareas comunes a todos los nodos) para todos los nodos (grupoall). - El rol
apache2(instalación y configuración de apache2) para todos los nodos del gruposervidores_web. - El rol
mariadb(instalación y configuración de mariadb) para todos los nodos del gruposervidores_bd.
- El campo
-
Los roles se van a definir en el directorio
roles. Se creará un directorio para cada rol con las carpetas:tasks: Contiene el yaml con las tareas.files: Contiene los ficheros que vamos a copiar a los nodos con el módulocopy.templates: Contiene las plantillas que vamos a copiar a los nodos con el módulotemplate.handlers: Contiene los manejadores para gestionar los servicios instalados.
-
El rol
commonsse ejecuta en todos los nodos. Modifica la tarea que está definida para que se actualice el sistema de todas las máquinas. -
El rol
apache2instala apache2 y copia algunos ficheros al servidor. Uno de los ficheros es un fichero de configuración, por lo que debemos reiniciar apache2 cada vez que se copia. En la tarea Copiar fichero de configuración y reiniciar el servicio:Debes poner en el parámetro
notifyel nombre de la tarea que se encuentra en el ficheromain.yamldel directoriohandlers, que será el encargado de reiniciar el servicio. -
El rol
mariadbinstala el servidor de base de datos mariadb, crea una base de datos y un usuario, y modifica la configuración del servicio.- Modifica las variables
cambia_nombre_variablepor las variables correctas. ¿En qué fichero tienes que buscar el nombre de las variables correctas? - Debes poner en el parámetro
notifyel nombre de la tarea que se encuentra en el ficheromain.yamldel directoriohandlers, que será el encargado de reiniciar el servicio.
- Modifica las variables
-
Ejecuta el playbook:
ansible-playbook site.yaml- Si tienes errores, repasa las modificaciones que has realizado para corregirlos.
- Cuando funcione la ejecución de la receta, cambia una de las tareas que notifican un reinicio para comprobar que se produce de nuevo el reinicio del servicio.
- Comprobación del funcionamiento: Accede desde el navegador web y comprueba los ficheros que hemos subido al servidor. Accede a la base de datos.