Provisión Automática de máquinas con Ansible

25
Instituto de Biocomputación y Física de Sistemas Complejos [email protected] • http://bifi.es Provisión automática de Máquinas con Ansible Provisión automática de Máquinas con Ansible Carlos Gimeno – [email protected] Alberto Alcolea – [email protected]

Transcript of Provisión Automática de máquinas con Ansible

Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

Provisión automática de Máquinas con Ansible

Provisión automática de Máquinas con Ansible

Carlos Gimeno – [email protected] Alcolea – [email protected]

2Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

0. Índice

Introducción a Ansible

Introducción

Como funciona

Versiones

Primeros Pasos

Como instalar Ansible

Como empezar a utilizar Ansible

Como me conecto a mis máquinas usando Ansible

Probando que todo funciona

Que puedo hacer con Ansible

Los Playbooks

¿Qué son?

Que pinta tienen

Nuestro Primer Playbook

API en Python

3Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible - Introducción

¿Qué es Ansible?

Plataforma de software libre para configurar y administrar máquinas

Arquitectura “agentless” no necesita instalar ningún servicio adicional en las máquinas

Utiliza YAML para describir las configuraciones reusables de los sistemas

4Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible - Introducción

¿Por qué necesito Ansible?

5Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible - Introducción

Ventajas

Mínimo por naturaleza

Seguro

Altamente confiable

Baja curva de aprendizaje

Codigo Abierto

Amplia comunidad detras de el

Hecho en Python!

Desventajas

Necesita Python tanto en el controlador como en las máquinas a configurar

El controlador no puede ser una máquina Windows

6Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible – ¿Como funciona?

¿Como funciona Ansible por debajo?

7Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible – ¿Como funciona?

¿YAML?

“YAML Ain't Another Markup Language”

Formato de serialización de datos legible por humanos

Sintaxis sencilla

Ansible lo utiliza para describir las configuraciones reusables de los sistemas

CUIDADO CON LOS TABULADORES!● YAML no soporta los tabuladores como separadores, lo cual

puede llevar a muchos errores difíciles de encontrar

8Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible - ¿Como funciona?

¿Qué pinta tiene YAML?

9Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible - Versiones

¿Qué versiones hay de Ansible?

Existen dos versiones de Ansible● Version Opensource:● Ansible Tower

10Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible - Versiones

¿Por qué no Ansible Tower?

11Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible – Primeros pasos

¿Como instalar Ansible?

Apt-get install ansible

La versión de los repositiorios de Ubuntu no es la más actualizada, conviene añadir los repositorios de Ansible

Apt-add-repository ppa:ansible/ansible

12Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible – Primeros pasos

¿Como empezar a utilizar Ansible?

Pequeño ejercicio para aplicar lo aprendido● Crear dos máquinas virtuales con red privada utilizando

Vagrant● Crear una clave ssh que utilizaremos para conectarnos a

las máquinas● O también podemos utilizar la clave que utiliza Vagrant

para conectar a las máquinas (vagrant ssh-config)

13Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible – Primeros pasos

¿Como me conecto a mis máquinas usando Ansible?

Ansible guarda un archivo en /etc/ansible/hosts con todas las máquinas a las que es capaz de conectarse.

14Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible – Primeros pasos

Probando que todo funciona

Ejecutamos el comando● ansible <host> --private-key=key –user=vagrant -m ping

15Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible – Primeros pasos

¿Qué mas permite el archivo /etc/ansible/hosts?

Podemos crear grupos de máquinas

Podemos añadir variables

16Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible – Primeros pasos

¿Qué puedo hacer con Ansible?

Ansible dispone de una gran cantidad de modulos para las tareas más habituales

Además, podemos programar nuestros propios modulos en Python

Se puede consultar un listado de modulos● http://docs.ansible.com/modules.html

17Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible - Playbooks

¿Qué son los playbooks?

Son la parte central de Ansible

Escritos en YAML, permiten describir las configuraciones a aplicar en las máquinas

Diseñados para ser fáciles de leer

Idempotentes, se pueden ejecutar tantas veces como se quiera sin temor a que vuelvan a ejecutar acciones que ya se han ejecutado

18Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible - Playbooks

¿Qué pinta tiene un playbook?

19Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible - Playbooks

Ejercicio: Nuestro primer playbook

Utilizando la documentación de los modulos, de Ansible, crear un playbook para instalar Apache2

20Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible - Playbooks

Solución:

21Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible - Playbooks

¿Como ejecuto un playbook?

Una vez tengamos un playbook listo, podemos ejecutarlo con la orden siguiente:

● Ansibe-playbook <nombre_del_playbook>

Consejo a la hora de crear playbooks:● Utilizar YAML Online Parser para evitar errores en la

sintaxis de YAML

22Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible – API en Python

¿Tiene Ansible una API?

Ansible poseé una API muy potente y bien documentada en Python que podemos usar para nuestros proyectos

Cualquier modulo de los disponibles en la documentación, es accesible a traves de la API.

23Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

1. Ansible – API en Python

Un ejemplo:

24Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

Bibliografía

Para saber más

Documentación oficial● http://docs.ansible.com/

Documentación oficial de YAML● http://yaml.org/

25Instituto de Biocomputación y Física de Sistemas Complejos • [email protected] • http://bifi.es

Preguntas

¿Alguna pregunta?