¡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
En esta tarea el alumno tendrá que averiguar qué comando utilizar para copiar un fichero desde el nodo de control al sistema gestionado por dicho nodo. Asimismo se deberán modificar los permisos del fichero para ajustarse a lo solicitado en esta tarea. Los requisitos son:
- El alumno deberá crear un fichero de origen llamado
origen.txt - El alumno deberá utilizar el modulo adecuado para copiar dicho fichero al destino. El fichero creado en el destino se llamará
destino.txt - El fichero en destino deberá configurarse con unos permisos (modo)
0644.
Tarea 2 – Instalación de servidor apache
El usuario deberá entregar una tarea que cumpla con los siguientes requisitos:
- Se creará un playbook llamado
tarea2_nombre_apellido.yaml - Se creará una play dentro de ese playbook llamada “Instalar apache web server”
- Se incluirán los sistemas a configurar (mínimo 1) utilizando la keyword
hosts. - Se evitará obtener los facts del sistema(s) objetivo
- Se creará una tarea llamada “Instalar servidor web apache” que instalará Apache utilizando el módulo
apty se seleccionará la última versión disponible de apache para la instalación.
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.
