Primeros pasos con Ansible Tower (AWX)

En el día de hoy, vamos a hablar de cuáles son los pasos básicos para tener operativo tu Ansible Tower, pero primero, ¿Qué es Ansible Tower?

Ansible Tower, no es más que la versión comercial de Red Hat de AWX. Y lo que nos ofrece es ayuda a escalar la automatización TI, administrar implementaciones complejas y acelerar la productividad. Centralizando y controlando nuestra infraestructura TI con un panel visual, control de acceso basado en roles, programación de trabajos, notificaciones integradas y administración de inventario gráfico. Y, además, aunque no lo vamos a ver en este post, una de las características más potentes que nos ofrece Ansible Tower es su API REST.

Pues bien, una vez que tenemos una idea de qué nos ofrece Ansible Tower, comencemos con los pasos a seguir, todo esto lo haremos con la cuenta de admin, pero lo ideal es concedamos los permisos necesarios a los usuarios que creemos (esto lo veremos más adelante).

Lo primero que nos encontramos al iniciar sesión será el Tablero, aquí tendremos un resumen de los Trabajos que se han ido ejecutando a lo largo del tiempo y si han sido satisfactorios o no.

A continuación iremos a las Organizaciones, ésta será nuestro nivel más alto en la jerarquía de Ansible Tower, podremos crear cuantas necesitemos..

Para poder empezar a trabajar, vamos a crear nuestro primer proyecto. En éste caso, vamos a usar GitLab como fuente, y un repositorio privado, por lo que en primer lugar necesitaremos crear una credencial, que no es más que la que nos da acceso a dicho Git, y yo la tengo configurada por SSH. Elegiremos Fuente de control y rellenaremos los campos requeridos. Para que podáis consultarlo, lo dejo público azure-awx

Una vez tengamos la credencial, crearemos el proyecto, tal y como podemos ver en la imagen, es sencillo. Anotar que si el Git, fuese público (o que tengamos acceso directo sin credenciales dentro de nuestra red) no sería necesaria la credencial.

Una vez hayamos guardado del proyecto, éste, comprobará que tiene visibilidad sobre él, y cuando acabe, dejará de parpadear el “círculo” y quedará en verde si hay visibilidad, o en rojo si, por el contrario, no la tiene.

Si volvemos al Tablero podremos comprobar que ha habido un Trabajo que se ha ejecutado con éxito, y, obviamente, si vamos a la pestaña de Trabajos también nos aparecerá ésta “Actualización SCM” completada con éxito.

Continuamos ahora creando un inventario, en éste primer caso, crearemos uno de una sola máquina, que será nuestro localhost, ya que lo que vamos a lanzar es un Trabajo para el despliegue de una máquina en Azure.
Primero se crea y guarda el inventario y, a continuación, se le crean los servidores.

Tal y como vimos antes, para conectar con Git, era necesario una credencial, pues bien, ahora, tal y como hemos comentado, vamos a desplegar una máquina en Azure. Será necesario una credencial del tipo “Microsoft Azure Resource Manager” y rellenar los campos como vemos en la imagen. Para obtener esos valores, deberemos crear un “Service Principal” para ello con la ayuda de “az cli” lanzaremos el siguiente comando de los cuales tomaremos los valores, siendo su relación:

  • appID = ID DE CLIENTE
  • password = SECRETO DEL CLIENTE
  • tenant = ID DEL INQUILINO
az ad sp create-for-rbac -n https://<URL-Ansible-Tower>

Ya tengamos creado, Inventario, Proyecto y Credencial de Azure, tenemos los requisitos necesarios para crear la Plantilla nos permitirá lanzar nuestro Trabajo. Simplemente nos iremos al apartado de Plantilla y rellenaremos los datos acorde a nuestras necesidades, si lo hemos hecho todo bien, en PLAYBOOK nos deberá aparecer un desplegable con los playbooks disponibles en nuestro GitLab. Una vez creado, podremos hacer click en el “cohete” que aparece ahora en nuestra plantilla y esto lanzará un Job de dicha plantilla. Que si todo va como es debido. Nos creará todos los recursos detallados en nuestro deploy.yml (lo podemos comprobar en nuestra suscripción de Azure).

Pues bien, visto todo ésto, ahora vamos a aprovisionar la máquina que anteriormente desplegamos con la plantilla, simplemente le instalaremos un servidor apache (definido en el playbook main.yml de nuestro Git) y una “página web” simple. Tal y como vimos anteriormente será necesario un inventario con un servidor que será la IP que nos ha creado en Azure, la credencial para acceder a la máquina y la plantilla que define el trabajo. Lanzamos la plantilla y al finalizar, accedemos a la IP de la máquina y vemos que ha tenido éxito.

Ahora vamos a hablar, brevemente, sobre los usuarios y equipos. Un usuario es nominal y un equipo agrupa usuarios, esa es la primera premisa. Aquí vemos como crear un usuario, un equipo, y como meter un usuario dentro de un equipo.

A continuación pasamos a los permisos, en global tenemos 4 tipos principales:

  • Lectura: Permite, simplemente, ver los recursos a los que se te otorgan permisos
  • Uso: Puedes utilizarlos, por ejemplo, usar una credencial dentro de una plantilla que creas nueva.
  • Actualización: Permite renovar el estado, por ejemplo, hacer que un proyecto vuelva a leer su repositorio GIT.
  • Admin: Control total del recurso

Aclarar que los permisos son para cada recurso, conceder permisos de administración de un proyecto a un usuario o equipo, no les da visibilidad sobre las plantillas que contiene ese proyecto, sería necesario otorgarle los correspondientes permisos también.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s