En esta charla se hablará de cómo administrar la infraestructura de AWS con una de las más populares herramientas de gestión de configuración, Ansible. Hablaremos de las ventajas de la infraestructura como código y haremos un pequeño despliegue de una aplicación en AWS.
5. Cómo se configuran estos entornos?
Servidores Físicos Máquinas Virtuales Servidores en la Nube
Consola / KVM Hypervisor Dashboard Web
● La infraestructura se maneja manualmente.
○ Propenso a errores.
○ No es tan fácil reproducir y estandarizar escenarios.
○ Mayor costo operativo y de mantenimiento.
○ Más esfuerzo para escalar.
6. Un paso adelante - IaC
● Toda la configuración en un repositorio - PR / Code Reviews
● Escalar y reproducir escenarios sin esfuerzo.
● Consistente, reproducible y predecible.
● Aplicable a cualquier entorno (Físico- Virtual- Cloud)
● Testing para verificar la infraestructura. (TDD- Testing clásico)
8. Ansible - Configuration Management
● Lanzado en 2012 por Michael DeHaan y comprado por RedHat en 2015.
● Utiliza YAML como lenguaje.
● Agentless.
● Idempotente.
● Utiliza SSH.
9. Ansible - Componentes
Un proyecto en Ansible se compone por lo siguiente:
● Inventory - Lista de hosts que queremos configurar.
● Modules - Plugins de Ansible que ejecutan tareas concretas. Existen alrededor de 1600 módulos disponibles.
● Tasks - Serie de comandos que Ansible ejecuta en un host.
● Roles - Un rol es un conjunto de tareas y archivos adicionales que definen una acción sobre el host.
● Playbooks - Es un archivo que asocia roles y tareas y Ansible ejecuta sobre los hosts definidos.
● Variables - Como en todo lenguaje de programación, las variables almacenan valores los cuales se utilizan en
tareas o templates para ejecutar alguna acción.
10. Ansible - Estructura
● ansible.cfg - Archivo de configuración para Ansible.
● group_vars - Carpeta con la definición de las variables según cada
host o grupo de hosts.
● hosts - Lista de hosts que serán configurados por Ansible.
● playbooks
● Requirements.yml - Archivo donde se describen roles externos.
● roles
12. AWS - Configuración Básica
Para configurar un nuevo servidor, sin utilizar los valores por defecto se debe configurar lo siguiente:
● Virtual Private Cloud VPC
○ Subnet
○ Internet Gateway
○ Route table
● Security Group
● Elastic Cloud Compute EC2