SlideShare una empresa de Scribd logo
Gestionando tu
Infraestructura con
Ansible
Moisés Maciá
@moises_macia
Gestionando tu infraestructura con Ansible
Hoja de ruta
● ¿Qué es la automatización de servidores?
● Introducción a Ansible.
● Topología y casos de uso.
● Recursos.
¿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, ...
Automatización de servidores: ¿Por qué?
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.
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.
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
Otras soluciones
● Chef.
● Puppet.
● SaltStack.
http://en.wikipedia.org/wiki/Comparison_of_open-source_configuration_management_software
Ansible: instalación
$ sudo pip install ansible [--upgrade]
Se puede instalar via apt, yum, pkg y homebrew
Ansible: estructura
● Inventario: definición de la arquitectura.
● Puede ser estático o dinámico.
● Playbooks.
● Roles:
● Tasks.
● Handlers.
● Variables.
● Files.
● Templates.
● Meta.
Gestionando tu infraestructura con Ansible
Gestionando tu infraestructura con Ansible
Gestionando tu infraestructura con Ansible
Gestionando tu infraestructura con Ansible
Gestionando tu infraestructura con Ansible
Gestionando tu infraestructura con Ansible
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)
Gestionando tu infraestructura con Ansible
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.
Gestionando tu infraestructura con Ansible
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.
Ansible: recursos
● http://docs.ansible.com/index.html
● https://github.com/ansible/ansible
● http://www.ansible.com/resources
● https://github.com/pjan/the-ansibles
● http://blog.servergrove.com/2014/04/01/deployment-symfony2-applica
● https://www.digitalocean.com/community/tutorials
Gestionando tu
Infraestructura con
Ansible
Moisés Maciá
@moises_macia
moises@samyroad.com

Más contenido relacionado

Gestionando tu infraestructura con Ansible

  • 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
  • 10. Ansible: instalación $ sudo pip install ansible [--upgrade] Se puede instalar via apt, yum, pkg y homebrew
  • 11. Ansible: estructura ● Inventario: definición de la arquitectura. ● Puede ser estático o dinámico. ● Playbooks. ● Roles: ● Tasks. ● Handlers. ● Variables. ● Files. ● Templates. ● Meta.
  • 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)
  • 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.
  • 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.
  • 23. Ansible: recursos ● http://docs.ansible.com/index.html ● https://github.com/ansible/ansible ● http://www.ansible.com/resources ● https://github.com/pjan/the-ansibles ● http://blog.servergrove.com/2014/04/01/deployment-symfony2-applica ● https://www.digitalocean.com/community/tutorials
  • 24. Gestionando tu Infraestructura con Ansible Moisés Maciá @moises_macia moises@samyroad.com