gestionando tu infraestructura con ansible

Post on 03-Jul-2015

361 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

PHPMad Junio 2014

TRANSCRIPT

Gestionando tu Infraestructura con

Ansible

Moisés Maciá@moises_macia

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.

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)

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.

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-applications-ansible/● https://www.digitalocean.com/community/tutorials

Gestionando tu Infraestructura con

Ansible

Moisés Maciá@moises_macia

moises@samyroad.com

top related