Despliegue de servidores Vagrant con Ansible

Despliegue de un servidor web y base de datos con Ansible.

Esta entrada es un fragmento de la entrada Instalar ownCloud en un servidor dedicado (IaaS), en la que se requiere Ansible para el despliegue de ownCloud en dos servidores, uno con Apache y PHP y otro con la base de datos sobre MySQL.

Despliegue de máquinas Vagrant con Ansible en Debian Jessie

Ansible es una herramienta desarrollada en Python para la automatización de tareas: despliegues, configuración y actualización de máquinas. Existen otras alternativas con nombres como Puppet, Chef o Salt.

Instalación de Ansible en un virtualenv

La instalación de la última versión de Ansible la hacemos con pip sobre un entorno virtual. Para ello instalamos virtualenv con apt-get install virtualenv y creamos un directorio donde almacenar nuestros entornos virtuales.

Creamos un nuevo entorno virtual con la ejecución de virtualenv virtualenv/ansible y activamos source virtualenv/ansible/bin/activate. Ahora es cuando ejecutamos la instalación de Ansible y python-dev con pip install ansible python-dev. Tras ello salimos del entorno virtual con deactivate.

También es posible instalarlo desde su repositorio GitHub, siendo esta la última versión (v2.0.0 vs v1.9.4).

Configuración inicial de Ansible

La configuración de la receta de Ansible la hacemos a raíz de una plantilla ya creada. Por ello clonamos con git clone https://github.com/josedom24/automatizacion_iaw.git la que facilita el profesor.

Editamos el fichero hosts, donde se ubica la configuración para el acceso a las máquinas. En él indicamos la dirección IP y usuario para el acceso mediante SSH.

El siguiente paso es añadir nuestra clave pública al fichero authorized_keys de cada máquina Vagrant, para ello antes debemos copiarla con scp /home/nano/.ssh/nombre.key.pub vagrant@172.22.9.115: y, dentro de la máquina Vagrant, añadirlo con al fichero ~/.ssh/authorized_keys con cat nombre.key.pub >> ~/.ssh/authorized_keys

En el fichero ansible.cfg establecemos la configuración de Ansible, como es el fichero del que debe cargar, el usuario remoto y la clave privada utilizada para conectar a esos hosts.

A continuación, debemos de activar el entorno virtual creado para la instalación de la versión más reciente de Ansible. El comando a ejecutar, en mi caso, es: source ~/virtualenv/ansible/bin/activate. Recuerda que puedes salir de un virtualenv con deactivate

La ejecución del comando ansible -m ping all ejecutará un ping a todos los hosts, mientras que ansible -m ping SBBDD solo al servidor que aloja la base de datos.
Comprobación de Ansible.

La instrucción de Ansible deberá ser ejecutada en el directorio donde se ubican los ficheros de configuración de Ansible.

Configuración de una receta en Ansible

Un playbook es un fichero de texto escrito en YAML donde se indica los comandos a ejecutar en los hosts y a qué grupo afecta, así como otros parámetros.

En la receta clonada tenemos, por ejemplo, el playbook main.yml que a su vez hace referencia a otros tres playbooks más.

Para ver un ejemplo más completo podemos ver el fichero automatizacion_IAW/playbooks/apaceh2/main.yml
Instalación de Apache2 con Ansible.

Por ello, solo debemos ejecutar el main.yml ubicado en automatizacion_IAW para que se ejecuten las recetas de apache2, mysql y commons. Esto lo realizamos con la ejecución del comando ansible-playbook main.yml
Instalación de Apache, MySQL y PHP con Ansible.

Accediendo a la dirección IP del definido como servidor web observaremos el texto «Curso de Openstack» y el nombre de nuestro host.
Instalación de Apache con Ansible.

Más información sobre la configuración y uso de Ansible: Introducción a Ansible

Compartir es agradecer. Si te ha gustado... ¡compartélo!
Comparte con tus amigos










Enviar

1 respuesta

  1. 18 enero, 2016

    […] la entrada Despliegue de servidores Vagrant con Ansible para ver el proceso de despliegue de estos dos servidores utilizando […]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.