¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Ansible Automatización IT
Notas del curso Ansible Automatización IT del Clúster Tic de Galicia.
- Horas: 35
- Fecha Inicio: 17/04/2023
- Fecha Fin: 04/06/2023
Temario
-
- Introducción
- Instalando Ansible en una máquina virtual Linux
- Instalando Ansible en Ubuntu usando WSL
- Comandos fundamentales en Ansible
- Comprendiendo la arquitectura de Ansible
-
- Instalando Ansible usando entornos virtuales de python
- Introducción a los módulos en Ansible
- Ejecutando módulos de forma standalone
- Preparando las máquinas a gestionar usando usuario y contraseña
- Preparando las máquinas a gestionar usando clave pública
- Introducción a los inventarios en Ansible
- Ejemplo de ejecución de módulos sobre los inventarios de Ansible
- ¿Qué son los facts en Ansible?
-
- ¿Qué es YAML y por qué es importante conocerlo?
- Variables
- Tareas, Plays y Playbooks I
- Tareas, Plays y Playbooks II
- Qué son los handlers y para qué se usan
- Condicionales
- Tags
- Templates I
- Templates II
- Bloques y gestión de errores
- Bucles
- Qué son los Roles en Ansible
- Creando nuestro primer Rol
-
- Preparando nuestro entorno y actualizando python
- Creando nuestro propio módulo en ansible
- Añadiendo funcionalidades a nuestros módulos
- Introducción a Ansible galaxy
- Un vistazo al sitio web de Ansible galaxy
- Utilizando Ansible Galaxy para gestionar colecciones
- Utilizando Ansible Galaxy para gestionar roles
- Caso práctico: despliegue de una instancia EC2 en AWS
- Introducción a la consola de AWS y obtención de datos
- Instalando AWS cli y configurando las credenciales de AWS
- Ajustando nuestro playbook y depurando errores
- Conectándonos a nuestra instancia EC2
Prácticas
- Tarea 1: Ejecución de módulos standalone
- Tarea 2: Instalación de servidor apache
Tarea 3 - Refinación de la configuración de Apache
En la tarea anterior se ha creado un playbook para instalar Apache. En esta tarea el alumno ampliará dicho playbook para refinar la configuración de Apache. El nombre del fichero a entregar deberá seguir el patrón tarea3_nombre_apellido.yaml
Paso 1: Crear fichero de virtual hosts
Apache utiliza el concepto de virtualhosts que permiten asignar distintos sitios web a través de dominios a una misma dirección IP. Apache proporciona un virtualhost por defecto que modificaremos en esta tarea. Una vez modificado tendremos que activarlo y reiniciar apache.
Para ello primero el alumno deberá crear un nuevo directorio local llamado files en el nodo de gestión (donde está instalado Ansible) y crear un fichero llamado awesome-app con el siguiente contenido:
<VirtualHost *:80> DocumentRoot /var/www/awesome-app Options -Indexes ErrorLog /var/log/apache2/error.log TransferLog /var/log/apache2/access.log </VirtualHost>
Paso 2: Crear las tareas para configurar Apache usando el nuevo virtual host
Una vez creado el fichero, necesitamos modificar nuestro Playbook para copiarlo a la máquina destino en la que hemos instalado Apache en la tarea anterior. Además se crearán otras tareas adicionales para deshabilitar el virtualhost por defecto de Apache (tanto el standard como el ssl), se activará nuestro nuevo virtual host y se reiniciará Apache. Para ello se tendrán que añadir las siguientes 4 tareas a nuestro playbook:
- 1. Tarea:
- Nombre: Push default virtual host configuration
- Módulo a utilizar:
copy - Consideraciones adicionales: El fichero de virtual hosts se copiará a
/etc/apache2/sites-available/awesome-appy se le darán unos permisos0640
- 2. Tarea:
- Nombre: Disable the default virtualhost
- Módulo a utilizar:
file - Consideraciones adicionales: el fichero de virtual host por defecto se encuentra en
/etc/apache2/sites-enabled/default. Para deshabilitar ese fichero es necesario eliminarlo y que no esté presente. La tarea notificará a un handler llamado restart apache que crearemos más adelante.
- 3. Tarea:
- Nombre: Disable the default ssl virtualhost.
- Consideraciones: exactamente igual que la anterior solo que con el fichero
/etc/apache2/sites-enabled/default-ssl
- 4ª. Tarea:
- Nombre: Activates our virtualhost
- Módulo a utilizar:
file. - Consideraciones: en este caso se deberá utilizar la opción
linkpara el parámetrostatedel modulofile. El origen será/etc/apache2/sites-available/awesome-app(donde anteriormente hemos copiado nuestro fichero virtual hosts) y el destino/etc/apache2/sites-enabled/awesomeapp(donde se almacenan los sitios realmente activos en Apache). Asimismo se deberá llamara al handler que reinicia apache.
Paso 3: Crear handler para reiniciar Apache
Una vez creadas nuestras tareas anteriores el alumno creará un handler al final de la tarea que contendrá el código para reiniciar apache y llamará a ese handler restart apache. En este caso el nombre del servicio de apache es apache2. Recuerda que los handlers están alineados con las tasks en YAML.
