Upload
carlos-gimeno-yanez
View
114
Download
2
Embed Size (px)
Citation preview
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?