3. Hoja de ruta
● ¿Qué es la automatización de servidores?
● Introducción a Ansible.
● Topología y casos de uso.
● Recursos.
4. ¿Qué es la automatización de servidores?
● Creación de servidores (web, balanceadores, DB, etc.)
● Amazon, Rackspace, Digital Ocean, ...
● Aprovisionamiento de servidores.
● Nginx, PHP, MySQL, ...
● Automatización de despliegues.
● Capistrano, capifony, ansible, ...
6. Automatización de servidores: ¿Por qué?
● Servicios cloud cada vez más sencillos y potentes.
● Recursos que escalan horizontalmente.
● Menor dependencia con un proveedor de servicios.
● Infraestructura en código.
● Consistencia entre entornos.
● Casos especiales más controlados.
● Mucho más sencillo de desplegar en varios entornos.
● Menor dependencia del “sysadmin”.
● Mayor automatización, más gente puede desplegar.
● Facilidad para los nuevos miembros del equipo.
● Plan de contingencia, recuperación ante desastres.
● Como devs en una startup desempeñamos varios roles:
● DevOps: automatizarlo todo.
● Simplificar nuestra vida, simplificando la gestión de las máquinas.
7. Ansible
● Open source.
● Python.
● Los plugins se escriben en cualquier cosa que devuelva JSON.
● YAML para la configuración.
● Muchos ficheros, pero fáciles de mantener.
● Sin agente, sobre SSH.
● PowerShell en Windows (>= v1.7)
● “Batteries included”
● Muchos módulos disponibles para tareas comunes.
● Despliegue con un solo comando.
● Cifrado de datos sensibles (ansible vault).
● Idempotente.
8. Ansible según sus creadores
● Mínima curva de aprendizaje e instalación.
● Rápido y paralelizable por defecto.
● Sin servidores ni clientes; reutilizar conexiones SSH.
● Lenguaje entendible por maquinas y humanos.
● Foco en la seguridad, simple de auditar, revisar, etc.
● Gestión de maquinas remotas al instante, sin historias.
● Permitir plugins en cualquier lenguaje, no solo Python.
● Se puede usar sin ser root.
● Ser el sistema de automatización mas simple de todos.
https://github.com/ansible/ansible#design-principles
9. Otras soluciones
● Chef.
● Puppet.
● SaltStack.
http://en.wikipedia.org/wiki/Comparison_of_open-source_configuration_management_software
11. Ansible: estructura
● Inventario: definición de la arquitectura.
● Puede ser estático o dinámico.
● Playbooks.
● Roles:
● Tasks.
● Handlers.
● Variables.
● Files.
● Templates.
● Meta.
12.
13.
14.
15.
16.
17.
18. Ansible: ejecución
$ ansible-playbook -i my_inventory my_playbook.yml
● -l webservers (solo se ejecuta para el grupo webservers)
● -t my_tag (solo se ejecutan las tareas etiquetadas)
19.
20. Ansible: topología
● Máquina de control (servidor de despliegues).
● Puerta de entrada a nuestra infraestructura.
● Punto de control para las claves SSH.
● Todas las maquinas de nuestra infraestructura son accesibles
desde la maquina de control.
21.
22. Ansible: recursos
● Ansible Tower:
● Front-end gráfico para Ansible.
● Gestión de equipos.
● API REST.
● Auditoría, tareas programadas, etc.
● Bastante caro, 5.000$/año para 50 nodos.
● Ansible Galaxy:
● Repositorio de roles listos para usar.
● Bastante nuevo, calidad irregular.