Puppet, Ansible, Salt: Maturidade, Simplicidade e Flexibilidade
Cloud Computing. Gestión de configuraciones. Ansible
-
Upload
pacvslideshare -
Category
Education
-
view
240 -
download
1
Transcript of Cloud Computing. Gestión de configuraciones. Ansible
Pedro A. Castillo Valdivieso Depto. de Arquitectura y Tecnología de Computadores
Universidad de Granada [email protected]
Gestión de configuraciones 2
• Fuente de información principal: http://jj.github.io/CC/documentos/temas/Gestion_de_configuraciones
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.
Ansible 4
• En Linux podemos instalarlo con apt-get
Ansible 5
• En OS X podemos instalarlo con brew
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.
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
Ansible 8
• Con las máquinas en ejecución, y sabiendo la IP de cada una, podemos pasar a trabajar:
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.
Ansible 10
• Ya podemos comprobar si Ansible funciona
Ansible 11
• Ejecutemos un comando en ambas máquinas:
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.
Ansible 13
Problemas que surgen...
Ansible 14
• Y cómo arreglarlos:
Ansible 15
• Tras configurar el acceso, indicaremos que pida también la clave del sudo:
Ansible 16
• Vemos que inicialmente no estaba instalado, pero después de ejecutar Ansible queda instalado en ambas.
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.
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).
Ansible - playbooks 19
• Podemos acceder a las máquinas por ssh y comprobar que está instalado el joe:
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.
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