Herramientas de usuario

Herramientas del sitio


informatica:ciberseguridad:cursos:curso_ansible_automatizacion_it

¡Esta es una revisión vieja del documento!


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

    1. Introducción
    2. Instalando Ansible en una máquina virtual Linux
    3. Instalando Ansible en Ubuntu usando WSL
    4. Comandos fundamentales en Ansible
    5. Comprendiendo la arquitectura de Ansible
    1. Instalando Ansible usando entornos virtuales de python
    2. Introducción a los módulos en Ansible
    3. Ejecutando módulos de forma standalone
    4. Preparando las máquinas a gestionar usando usuario y contraseña
    5. Preparando las máquinas a gestionar usando clave pública
    6. Introducción a los inventarios en Ansible
    7. Ejemplo de ejecución de módulos sobre los inventarios de Ansible
    8. ¿Qué son los facts en Ansible?
    1. ¿Qué es YAML y por qué es importante conocerlo?
    2. Variables
    3. Tareas, Plays y Playbooks I
    4. Tareas, Plays y Playbooks II
    5. Qué son los handlers y para qué se usan
    6. Condicionales
    7. Tags
    8. Templates I
    9. Templates II
    10. Bloques y gestión de errores
    11. Bucles
    12. Qué son los Roles en Ansible
    13. Creando nuestro primer Rol
    1. Preparando nuestro entorno y actualizando python
    2. Creando nuestro propio módulo en ansible
    3. Añadiendo funcionalidades a nuestros módulos
    4. Introducción a Ansible galaxy
    5. Un vistazo al sitio web de Ansible galaxy
    6. Utilizando Ansible Galaxy para gestionar colecciones
    7. Utilizando Ansible Galaxy para gestionar roles
    8. Caso práctico: despliegue de una instancia EC2 en AWS
    9. Introducción a la consola de AWS y obtención de datos
    10. Instalando AWS cli y configurando las credenciales de AWS
    11. Ajustando nuestro playbook y depurando errores
    12. Conectándonos a nuestra instancia EC2

Prácticas

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-app y se le darán unos permisos 0640
  • 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 link para el parámetro state del modulo file. 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.

Recursos

informatica/ciberseguridad/cursos/curso_ansible_automatizacion_it.1683904034.txt.gz · Última modificación: por tempwin