Cloud Computing. Gestión de configuraciones. Ansible
1. Pedro A. Castillo Valdivieso
Depto. de Arquitectura y Tecnología de Computadores
Universidad de Granada
pacv@ugr.es
2. Gestión de configuraciones
2
• Fuente de información principal:
http://jj.github.io/CC/documentos/temas/Gestion_de_configuraciones
3. Ansible
3
• Ansible es un sistema de gestión remota de
configuraciones que permite gestionar
simultáneamente miles de sistemas diferentes.
• Básicamente, lo que hace Ansible es ejecutar
comandos de forma remota y simultáneamente entre
varias máquinas cliente.
6. Ansible
6
• Sólo hay que instalar Ansible en la máquina anfitrión,
no en los clientes.
• Los clientes necesitan tener activada la conexión por
ssh y tener una cuenta y forma válida de acceder a
ellos.
7. Ansible
7
• Cada máquina bajo el control de Ansible se añade al
fichero inventario, que contiene las IPs de las máquinas
controladas por el mismo.
• Este inventario se usa para agrupar los servidores.
echo "172.16.169.137" > ./ansible_hosts
echo ”172.16.169.136" >> ./ansible_hosts
export ANSIBLE_HOSTS=./ansible_hosts
8. Ansible
8
• Con las máquinas en ejecución, y sabiendo la IP de
cada una, podemos pasar a trabajar:
9. Ansible
9
• Ya podemos comprobar si Ansible funciona:
ansible all -m ping -u pedro --ask-pass
Hemos hecho ping a todas las máquinas del inventario,
comprobando si son accesibles.
La opción –u especifica el nombre del usuario (si es
diferente del de la máquina local).
Con --ask-pass pedirá la clave, si no se han configurado
las máquinas clientes para acceder a ellas sin clave.
12. Ansible
12
• Los módulos facilitan la ejecución de operaciones.
• Usando el módulo command podemos instalar
cualquier programa en un grupo de máquinas definido.
• Instalemos el editor de textos “joe”:
ansible all -m command -a ’sudo apt-get install -y joe' -u pedro --ask-pass
La opción -a sirve para pasar los argumentos al módulo.
Utilidad principal: ejecutar comandos en todas las
máquinas de un grupo a la vez.
16. Ansible
16
• Vemos que inicialmente no estaba instalado, pero
después de ejecutar Ansible queda instalado en
ambas.
17. Ansible - playbooks
17
• En los gestores de configuraciones hay un métodos
para ejecutar una especie de procesos o tareas en lote.
• En Ansible se llaman “playbooks”.
• Son ficheros en sintaxis YAML para indicar a la
máquina virtual qué instalar y cómo instalarlo.
18. Ansible - playbooks
18
• Por ejemplo, para instalar joe, podemos crear:
• Y lo ejecutamos con:
ansible-playbook ./ej_ansibleplaybook.yml -u pedro --ask-pass --ask-sudo-pass
• Instalaremos joe en todas las máquinas indicadas en la
primera línea (all).
19. Ansible - playbooks
19
• Podemos acceder a las máquinas por ssh y comprobar
que está instalado el joe:
20. Ansible. Ejercicios
20
• Instala Ansible en tu sistema.
• Configura el fichero de inventario incluyendo las IPs de
dos máquinas.
• Usa Ansible para hacer ping a ambas máquinas.
• Usa Ansible para instalar Apache en ambas máquinas.
• Crea un “playbook” para Ansible con el que instalar
PHP. Aplícalo en ambas máquinas.
21. Recursos adicionales
21
http://jj.github.io/CC/documentos/temas/Gestion_de_configuraciones
Getting started with ansible in 5 minutes
https://wiredcraft.com/blog/getting-started-with-ansible-in-5-minutes/
An Ansible Tutorial
https://serversforhackers.com/an-ansible-tutorial
How To Deploy a Basic PHP Application Using Ansible on Ubuntu 14.04
https://www.digitalocean.com/community/tutorials/how-to-deploy-a-basic-php-
application-using-ansible-on-ubuntu-14-04
Using Vagrant and Ansible
http://docs.ansible.com/ansible/guide_vagrant.html