Cloud Computing. Gestión de configuraciones. Ansible

21
Pedro A. Castillo Valdivieso Depto. de Arquitectura y Tecnología de Computadores Universidad de Granada [email protected]

Transcript of Cloud Computing. Gestión de configuraciones. Ansible

Page 1: Cloud Computing. Gestión de configuraciones. Ansible

Pedro A. Castillo Valdivieso Depto. de Arquitectura y Tecnología de Computadores

Universidad de Granada [email protected]

Page 2: Cloud Computing. Gestión de configuraciones. Ansible

Gestión de configuraciones 2

•  Fuente de información principal: http://jj.github.io/CC/documentos/temas/Gestion_de_configuraciones

Page 3: Cloud Computing. Gestión de configuraciones. Ansible

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.

Page 4: Cloud Computing. Gestión de configuraciones. Ansible

Ansible 4

•  En Linux podemos instalarlo con apt-get

Page 5: Cloud Computing. Gestión de configuraciones. Ansible

Ansible 5

•  En OS X podemos instalarlo con brew

Page 6: Cloud Computing. Gestión de configuraciones. Ansible

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.

Page 7: Cloud Computing. Gestión de configuraciones. Ansible

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

Page 8: Cloud Computing. Gestión de configuraciones. Ansible

Ansible 8

•  Con las máquinas en ejecución, y sabiendo la IP de cada una, podemos pasar a trabajar:

Page 9: Cloud Computing. Gestión de configuraciones. Ansible

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.

Page 10: Cloud Computing. Gestión de configuraciones. Ansible

Ansible 10

•  Ya podemos comprobar si Ansible funciona

Page 11: Cloud Computing. Gestión de configuraciones. Ansible

Ansible 11

•  Ejecutemos un comando en ambas máquinas:

Page 12: Cloud Computing. Gestión de configuraciones. Ansible

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.

Page 13: Cloud Computing. Gestión de configuraciones. Ansible

Ansible 13

Problemas que surgen...

Page 14: Cloud Computing. Gestión de configuraciones. Ansible

Ansible 14

•  Y cómo arreglarlos:

Page 15: Cloud Computing. Gestión de configuraciones. Ansible

Ansible 15

•  Tras configurar el acceso, indicaremos que pida también la clave del sudo:

Page 16: Cloud Computing. Gestión de configuraciones. Ansible

Ansible 16

•  Vemos que inicialmente no estaba instalado, pero después de ejecutar Ansible queda instalado en ambas.

Page 17: Cloud Computing. Gestión de configuraciones. Ansible

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.

Page 18: Cloud Computing. Gestión de configuraciones. Ansible

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).

Page 19: Cloud Computing. Gestión de configuraciones. Ansible

Ansible - playbooks 19

•  Podemos acceder a las máquinas por ssh y comprobar que está instalado el joe:

Page 20: Cloud Computing. Gestión de configuraciones. Ansible

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.

Page 21: Cloud Computing. Gestión de configuraciones. Ansible

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