Continuamos con este tutorial de Ansible, esta vez hablaremos de algunas palabrejas del idioma Ansible. Si habéis llegado aquí, seguramente cuando ejecutéis ansible en vuestra terminal ya no os dura eso de -bash: ansible: command not found si no que os aparecerá la ayuda propia del comando. Así que sin más explicación, vamos directo a hablar sobre los inventarios en Ansible.

Inventario

Una vez tenemos Ansible instalado, ya podemos trabajar con él, pero antes es necesario configurar el Inventario. Generalmente vamos a encontrar que tendemos muchos servidores que administrar y tendremos que hacer un pequeño «inventario». Cuando en Ansible hablamos del Inventario nos referimos a esas IP’s, hosts o máquinas que estamos gestionando y que hacemos un listado de todas ellas.

Si tenemos cuatro servidores en nuestra infraestructura donde dos son servidores web y otros dos son servidores de correo, nuestro inventario constará de esas cuatro máquinas. Y las podremos apuntar en el inventario por su IP o por el nombre de dominio principal -o incluso rangos, pero todo a su tiempo-. Además podremos hacer dos grupos, el grupo de los servidores web y el grupo de los servidores de correo.

Configurar inventario en Ansible

¿Y como podemos configurar ese inventario? Pues muy simple, utilizando el fichero de configuración de Ansible que podrás encontrar en /etc/ansible/hosts . Si editamos este fichero, veremos que es un fichero más de configuración en GNU/Linux y que cada línea consta de un host y que hay un montón de ejemplos que vamos a ver ahora mismo.

Imaginemos que en nuestro Inventario tenemos lo siguiente:

db1.voidnull.es mail.voidnull.es 192.168.100.1 192.168.100.10

Esto significa que en nuestro inventario tenemos 4 máquinas, un servidor de bases de datos, un servidor de correo y dos maquinas identificadas por IP’s que por el momento no se que pueden ser XD. Pero lo que tenemos que tener claro, es que son 4 maquinas que vamos a gestionar con Ansible.

Pero imaginemos que tenemos 4 servidores para bases de datos, dos servidores web y uno de correo. ¿Seria necesario hacer esto?:

db1.voidnull.es db2.voidnull.es db3.voidnull.es db4.voidnull.es web1.voidnull.es web2.voidnull.es mail.voidnull.es

Pues si, puedes listar tu inventario de esta manera sin ningún problema. Pero quizás, si tienes muchas más maquinas que esas, sea un poco rollazo tener que escribir todos los hosts ¿Verdad? Pues en el Inventario de Ansible permite configurar rangos y podemos representar en una sola línea 4 maquinas:

db[1:4].voidnull.es web[1:2].voidnull.es mail.voidnull.es

¿Mola, verdad?

También podemos especificar maquinas por grupo. Para agrupar los servidores en grupos es necesario que en una línea pongamos entre corchetes el nombre del grupo -y así luego nos podremos referir a ese grupo en concreto con Ansible-. Por ejemplo:

[webservers] web1.voidnull.es web2.voidnull.es [dbservers] db1.voidnull.es db2.voidnull.es db3.voidnull.es db4.voidnull.es

¿Para que sirve tener grupos? Pues imagina que necesitamos hacer una tarea en todos los hosts que tenemos pero luego queremos hacer una especifica a unos cuantos hosts en concreto. Por ejemplo, queremos que en todos los hosts se instale un certificado SSL pero únicamente en los servidores del grupo dbservers queremos instalar un servicio de bases de datos. O que la tarea de configurar un servidor en Postgress solo se haga en el grupo dbservers -quedaos con la palabra Tarea :P-.

Y eso es todo, una vez tengas configurado tu inventario, es momento de empezar con algunos comandos básicos.