• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz - Todas las novedades sobre VMware, Veeam, InfluxData, Grafana, Zimbra, etc.

  • Home
  • VMware
    • VMworld
    • VMware vSphere 6.7
    • VMware vSphere 6.5
  • Veeam
    • Resumen Contenido 2021
    • Veeam v11
      • Continuous Data Protection (CDP
      • Ransomware Protection
      • Archive Tier
      • Mejoras en Instant Recovery
      • Veeam Agent for Mac
      • Veeam Backup for AHV v2.1
    • Veeam Backup for Microsoft Office 365
      • 1 – Razones para proteger nuestra información en Microsoft Office 365
      • 2 – Componentes lógicos de Veeam Backup for Microsoft Office 365 2.0
      • 3 – Instalación paso a paso de Veeam Backup for Microsoft Office 365 v2.0
      • 4 – Configuración inicial de Veeam Backup for Microsoft Office 365 v2.0
      • 5 – Creando trabajos de copia en Veeam Backup for Microsoft Office 365 v2.0
      • 6 – Restaurando elementos en Veeam Backup for Microsoft Office 365 v2.0
    • Veeam Backup for AWS
      • Veeam: Veeam anuncia Veeam Backup for AWS Free Edition
      • Veeam: Cómo Desplegar Veeam Backup for AWS – paso a paso
      • Veeam: Vistazo en profundidad al nuevo Veeam Backup for AWS – Creación de Políticas de Backup y Restauración
      • Veeam: Cómo conectar nuestro Veeam Backup & Replication a Veeam Backup for AWS
    • Veaam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte I – Introducción a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte II – Descarga e Instalación de Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte III – Añadir una Infraestructura de VMware vSphere a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte IV – Añadir una Infraestructura de Veeam Backup and Replication a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte V – Realizando troubleshooting de vSphere usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VI – Realizando troubleshooting de Veeam Backup and Replication usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VII – Vistazo profundo a los Dashboards en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte VIII – Vistazo profundo a Reportes en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte IX – Chargeback para crear reportes de coste de nuestra Infraestructura
    • Veeam Availability Console
      • 1 – Teoría e información útil sobre el producto
      • 2 – Instalación de Veeam Availability Console
      • 3 – Configuración y conexión con VBR Server
      • 4 – Administración centralizada de Veeam Backup Agents
      • 5 – Backup de Agentes a diferentes destinos, SMB, Repositorio Veeam o Cloud Connect
      • 6 – Reportes de Backup de Veeam Agent y Veeam Backup and Replication
      • 7 – Manejando la Facturación de Veeam Agents, Backup and Replication y Cloud Connect
    • Backup y restore de cargas de trabajo a Microsoft Azure
      • 1 – Introducción
      • 2 – Conectividad entre nuestro Datacenter y Microsoft Azure
      • 3 – Desplegar Veeam Backup and Replication en Microsoft Azure
      • 4 – Configuración en nuestro Datacenter para backup a Microsoft Azure
      • 5 – Restaurando a Microsoft Azure, desde Microsoft Azure
      • 6 – Migrar cargas de trabajo desde Microsoft Azure hacía nuestro Datacenter
    • Veeam v9.5 Update 4
      • Veeam Cloud Tier
        • Cómo controlar el ancho de banda en Veeam Cloud Tier
      • Secure Restore y Staged Restore
      • Mejoras en Veeam Agent Management
      • Veeam Community Edition
      • Actualizar Veeam Enterprise Manager y Veeam Backup and Replication a la última versión
      • VeeamONE con Intelligent Diagnostics, Remediation actions, Business View 2.0 y Application Monitoring
    • VeeamON 2022
      • Novedades en Veeam ONE v12
    • VeeamON 2021
      • VBO v6 – Self-Service y Backup Copy Glacier-Azure Archive
    • VeeamON 2020
      • Veeam Backup for AWS v2.0
    • VeeamON 2019
      • Veeam Availability Orchestrator v2.0 – ¡novedades!
    • VeeamON 2017
      • Sesiones recomendadas
      • Día I – Veeam Availability Suite v10 – ¡novedades!
      • Día II – Veeam Azure PN (Powered Network), Scale-out Archive Tier y mucho más
    • VeeamON 2015
      • VeeamON 2015 volverá a Las Vegas en el único Evento sobre Disponibilidad en el Data Center
      • Completo resumen, keynotes e imágenes
      • vBrownBag – Jorge de la Cruz – Stop sending postcards to your customers
  • Zextras
  • PRTG
  • Office 365
    • Microsoft – Añadiendo nuestro dominio a Office 365, configuración de DNS y migración de actual Mailbox
    • Veeam: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
    • PRTG: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
  • Zimbra
    • Instalación
      • Instalando Zimbra 8.7.6 sobre Ubuntu 14.04 LTS – ¡con Chat y Drive!
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte II
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte I
      • Instalando Zimbra 8.7.x con un solo comando, incluye Chat y Drive
  • Linux
    • InfluxDB, Grafana y Telegraf
      • 1 – Instalación y configuración de los components
      • 2 – Instalar agente en Linux
      • 3 – Integración con PRTG
      • 4 – Instalar agente Telegraf en Nodos remotos Windows
      • 5 – Activar inputs específicos, Red, MySQL/MariaDB, Nginx
      • 6 – Monitorizando Veeam
    • Ansible y Zabbix
      • 1 – Inicio
      • 2 – Instalación de Ansible e integración con Active Directory
      • 3 – Configuración de AutoDiscovery en Zabbix
      • 4 – Instalación del agente de Zabbix en Windows
      • 5 – Instalación del agente de Zabbix en Linux y Auto Remove en Zabbix
    • Jenkins
      • 1 – Inicio
      • 2 – Instalación de Jenkins en Ubuntu
      • 3 – Instalando nuestro primer plugin
      • 4 – Sincronización NTP de Linux
      • 5 – Añadir un Slave Windows a Jenkins
      • 6 – Ejecutar tareas en Linux
      • 7 – Ejecutar tareas en Windows
    • Kubernetes
      • 1 – Introducción a Kubernetes
      • 2 – Instalación paso a paso
      • 3 – RollingUpdate con Kubernetes
      • 4 – Dashboard
      • 5 – Volúmenes NFS
      • 6 – Registry
      • 7 – Traefik
      • 8 – Systemd con Traefik y Proxy de Kubernetes
      • 9 – Heapster Influx Grafana
      • 10 – Labels de Kubernetes
      • 11 – API: Swagger
      • 12 – API: Creando nuestro primer POD
  • Contribuidores
    • Acerca de Jorge
    • Acerca de Oscar Mas
      • Clúster SQL
        • 1 – Introducción
        • 2 – Preparación de los equipos virtuales
        • 3 – Instalación del Clúster de Microsoft
        • 4 – Instalación de SQL Server para Clúster de Microsoft
        • 5 – Configuración de nuestro Clúster de SQL
        • 6 – Monitorización de Clúster de SQL con Zabbix
        • 7 – Actualizando clúster de SQL

Ansible: Qué es AWX, instalación, configuración, PlayBooks para Windows y Linux y ¡mucho más!

15 August, 2018 - Escrito en: docker, opensource

Soy Oscar Mas y en este post, me gustaría enseñaros que es AWX y como funciona.

AWX es una interfaz web para poder administrar nuestros roles que hemos creado en Ansible. Durante este post veremos como instalar AWX en un equipo mediante Docker y posteriormente como lanzar nuestros roles contras un equipo basado en Windows y otro basado en Linux.

Como ya es habitual, RedHat nos tiene acostumbrados a tener dos vertientes del mismo producto: uno comercial y el otro gratuito. Al igual que Ovirt es el mismo producto que RHEV (RedHat Enterprise Virtualization), AWX es su producto OpenSource y su correspondiente producto comercial es Ansible Tower.

Antes de continuar con el post, doy por hecho que tenéis conocimientos en los siguientes productos:

  • Docker
  • Ansible
  • Git

Uno de los puntos que diferencia Ansible de sus competidores, como puede ser Chef o Puppet, es la posibilidad de volver a la versión anterior a consecuencia de algún error. Al no tener esta posibilidad de rollback en el código, Ansible otorga esa tarea a Git. Es por este motivo que AWX funciona con Git, ya sea en local o en la nube.

El esquema lógico sería el siguiente:

Lo que haremos en este post, es lanzar varios playbook desde AWX contra dos equipos. En el primer playbook crearemos un directorio en un servidor de Windows y en el segundo playbook copiaremos nuestro fichero de hosts en un servidor de Linux. De esta manera podremos ver el proceso de configuración en dos sistemas operativos diferentes.

Para poder desarrollar correctamente el laboratorio, necesitaremos los siguientes equipos:

  • Un Domain Controller: Nos servirá de DNS para todos los equipos de nuestra red y el equipo basado en Windows estará metido en este dominio
  • Un servidor de Linux para poder desplegar AWX, en el cual instalaremos también instalaremos Ansible.
  • Dos equipos clientes: uno basado en Windows, el cual ha de estar en dominio y otro basado en Linux
  • Una cuenta en GitHub o tener un Git desplegado en nuestra red

Puntos que no entran en este post, pero si lo veis interesante dejar un comentario:

  • No he querido usar los inventarios dinámicos para no complicar el post, pero si no los conocéis, os aconsejo que les echéis un vistazo.
  • Tampoco he usado “Encuestas” en AWX para el despliegue de los servidores. Todas las variables serán estáticas.
  • No explico cómo cambiar los logos de nuestro AWX
  • No explico cómo tunear AWX, para optimizar el rendimiento
  • No explico los grupos de instancias para poder lanzar procesos de AWX en multiples servidores

Instalación de AWX

Antes de empezar con la instalación de AWX en nuestro equipo Linux, necesitaremos verificar que al menos tiene un par de cores (yo os aconsejo 4 Cores) y 4GB de RAM asignados a nuestro equipo virtual. Esto es a consecuencia de que cuando desplegamos AWX, no solamente se desplegamos un equipo en docker, sino que desplegamos varios equipos los cuales cada uno tiene una funcionalidad determinada para el correcto funcionamiento de AWX

El esquema lógico será el siguiente:

Lo primero que haremos es actualizar nuestros repositorios e instalar docker en nuestro equipo, junto con pip. Posteriormente instalaremos el módulo de docker mediante pip de la siguiente forma:

root@ansible:~# apt-get update && apt-get install -y docker docker.io git python-pip
root@ansible:~# pip install docker

Crearemos un directorio en el cual clonaremos mediante git los repositorios que nos servirán para desplegar los equipos necesarios

root@ansible:~# mkdir awx-install && cd awx-install
root@ansible:~/awx-install# git clone https://github.com/ansible/awx.git
root@ansible:~/awx-install# git clone https://github.com/ansible/awx-logos.git

En este fichero, definiremos las configuraciones de los diferentes servidores que se crearan cuando en el siguiente paso lancemos el playbook.

root@ansible:~/awx-install# vim awx/installer/inventory
postgres_data_dir=/var/lib/awx/pgdocker
default_admin_user=admin
default_admin_password=superpassword
awx_container_search_domains=ilba.cat
awx_alternate_dns_servers="172.26.0.10"
project_data_dir=/var/lib/awx/projects

Lanzaremos el playbook, el cual desplegará todos los servidores necesarios para su correcto funcionamiento:

root@ansible:~/awx-install# ansible-playbook -i awx/installer/inventory awx/installer/install.yml

Una vez acabado de lanzar el playbook que nos hemos descargado, ya podremos acceder al entorno web de AWX. EL usuario y contraseña para poder acceder a la administración web de AWX, recordar que se la hemos configurado en el fichero: inventory, antes de lanzar el playbook.

Como os he comentado con anterioridad, cuando desplegamos AWX, no solamente desplegamos un contenedor con AWX, sino que desplegamos una serie de contenedores para que AWX pueda funciona correctamente, como puede ser el entorno Web, la Base de Datos, etc… para poder ver los contenedores que hemos desplegado, lo podremos hacer con el siguiente comando:

Playbook para Windows

La intención de este post no es la de enseñaros PowerShell, así que realizaré un script muy sencillo que cree un directorio en la c:\ del servidor de destino. Para ello crearemos la estructura de directorios mediante el comando ansible-galaxy de la siguiente forma:

root@ansible:~# mkdir test-awx-powershell
root@ansible:~# cd test-awx-powershell
root@ansible:~/test-awx-powershell# ansible-galaxy init powershell

Los scripts en powershell los suelo sacar del directorio del role, así los puedo reusar en otros roles. Por eso veréis que el script está en el directorio: shared-files

root@ansible:~/test-awx-powershell# cat shared-files/directorio_pepe.ps1
$carpeta = $args[0]
mkdir C:\$carpeta

root@ansible:~/test-awx-powershell# cat powershell/tasks/main.yml
---
# tasks file for powershell
- name: Run powershell script
  script: shared-files/directorio_pepe.ps1 {{ nombre_directorio }}

root@ansible:~/test-awx-powershell# cat powershell/vars/main.yml
---
# vars file for powershell

nombre_directorio: "directorio_oscarmas"

Una vez creado nuestro rol lo subiremos a git para posteriormente poderlo usar desde AWX.

Procedimiento de AWX

La configuración de AWX, siempre sigue el mismo procedimiento para configurar nuestro playbook. A continuación os detallo los pasos a seguir durante la configuración de AWX:

  1. Credenciales: Este punto de menú, es donde configuraremos las credenciales de acceso a los servidores de destino. Si es un servidor de Windows, añadiremos el usuario y la contraseña de acceso y si es un servidor de Linux añadiremos la clave SSH del servidor de destino y el usuario de acceso
  2. Proyectos: Desde este punto de menú le indicaremos donde está ubicado nuestro proyecto de Ansible, en concreto nosotros usaremos Git.
  3. Inventario: En este apartado le indicaremos los equipos y como conectarse a ellos.
  4. Plantilla: Este es el apartado es donde mezclaremos las credenciales, proyectos e inventario. De esta forma configuraremos todos los datos para posteriormente poder lanzar nuestro Playbook
  5. Lanzar plantilla: Simplemente desde este punto de menú, que es el mismo que el punto 4, lanzaremos nuestro proyecto.

Ahora que ya tenemos el procedimiento a seguir, empecemos con la configuración de AWX

Configuración de AWX para Windows

Recordar que tanto en AWX como Ansible, cuando lanzamos un playbook contra un sistema operativo basado en Windows, necesitamos que el servidor de destino tenga habilitado y configurado Winrm, ya que será por aquí por donde lanzará nuestro playbook. Si desconocéis como realizarlo, simplemente necesitáis la herramienta de SolarWinds o creando una política de Active Directory. Si queréis usar SolarWinds os dejo el enlace:

  • http://www.solarwinds.com/free-tools/remote-execution-enabler-for-powershell

Una vez configurado WinRM, accederemos a la administración de AWX y le indicaremos las credenciales que nos permitirán acceder al servidor de destino:

Seguidamente crearemos nuestro Proyecto, el cual se descargará de Git el role que hemos creado con anterioridad. Acordaros que el role lo hemos subido anteriormente a Git.

Una vez creado nuestro inventario, haremos click en el icono de la nube, para que nuestro AWX se descargue el proyecto de nuestro role, el cual está ubicado en Git. También se puede realizar una actualización automática desde nuestro Git marcando la opción “Update Revision on Launch” en la captura anterior. Así cada vez que se lance el proyecto, revisará en Git que disponemos de la ultima versión de nuestro playbook.

Ahora configuraremos nuestro inventario y le indicaremos el host de destino. En nuestro caso será el servidor host2.ilba.cat, el cual en mi caso es un Hyper-V. En este punto, es importante destacar que le hemos indicado en las variables que se conecte al servidor mediante Winrm y el puerto que usamos.

Como he indicado anteriormente no usaremos inventarios dinámicos, así que tendremos que crear nuestro host a mano:

Ahora todas las configuraciones que hemos hecho con anterioridad las enlazaremos todas desde la plantilla:

Como indiqué al principio del post, no usaremos la opción “Añadir Encuesta”. En la cual podremos añadir el nombre de la variable ( en nuestro caso el nombre del directorio ) y al lanzarlo nos solicitará dicha variable.

Una vez configurada nuestra plantilla, ya podremos lanzarla y ver el resultado:

Una vez lanzado, tendremos que esperar a que se ejecute y posteriormente podremos verificarlo

Playbook para Linux

En este Playbook, lo que haremos en copiar nuestro fichero de hosts al servidor de destino. Como os he comentado al principio del post, la finalidad no es aprender de Ansible, la finalidad es saber configurar de forma básica AWX.

Antes de empezar os recuerdo que Ansible se basa en Python, así que necesitaremos tener instalado en el servidor de destino el paquete: python-minimal.

También es necesario tener una clave SSH para poder acceder al servidor de destino sin necesidad de indicarle el password de acceso.

Lo que vamos a hacer en este playbook es copiar nuestro fichero de hosts en el directorio temporal del servidor de destino de Linux. Para ello primero crearemos la estructura de directorios de Ansible mediante el comando ansible-galaxy de la siguiente forma:

root@ansible:~# mkdir test-awx-copyfile
root@ansible:~# cd test-awx-copyfile
root@ansible:~/test-awx-copyfile# ansible-galaxy init copy_file

Posteriormente crearemos el playbook  que copiará nuestro fichero de hosts en el servidor de destino:

root@ansible:~/test-awx-copyfile# cat copy_file/tasks/main.yml
---
# tasks file for template
- name: copiando un fichero
  copy:
    src: /etc/hosts
    dest: /tmp/{{ nombre_fichero }}

root@ansible:~/test-awx-copyfile# cat copy_file/vars/main.yml
---
# vars file for template
nombre_fichero: "fichero_oscarmas"

Una vez acabado de configurar lo subiremos a nuestro Git, para posteriormente indicárselo a AWX.

Configuración de AWX para Linux

Lo primero que haremos es acceder a la administración de AWX y desde allí crearemos el acceso a nuestro servidor de Linux. En el apartado “SSH PRIVATE KEY” hemos de pegar nuestra clave SSH para poder acceder al servidor de destino y rellenar los campos tal y como se indica en la siguiente captura:

Seguidamente, en el punto de menú “PROYECTOS”, le indicaremos nuestro repositorio git de donde se descargará nuestro código del playbook:

Una vez grabado, acordaros de descargar de Git nuestro Playbook. También se puede realizar una actualización automática desde nuestro Git marcando la opción “Update Revision on Launch” en la captura anterior. Así cada vez que se lance el proyecto, revisará en Git que disponemos de la ultima versión de nuestro playbook.

Ahora solamente nos queda crear el equipo de destino en nuestro inventario, en mi caso el equipo de destino es: template.ilba.cat

Y ahora tendremos que unificar todos los pasos anteriores desde nuestra plantilla:

Una vez hecho los pasos anteriores, solamente nos queda lanzar nuestro playbook desde la consola de AWX:

Una vez lanzado nuestro playbook, podremos verificar que nos ha creado el fichero. Espero que os sirva de ayuda.

Filed Under: docker, opensource Tagged With: ansible, ansible awx, awx, awx git

Reader Interactions

Comments

  1. Dickson says

    18 September, 2018 at 12:42

    exelente tuto, podrias ayufarme con un incoveniente con Ansible?

    Reply
  2. Carlos says

    11 December, 2018 at 11:57

    Muy buen tutorial !

    Reply
  3. Alejandro says

    6 April, 2019 at 2:11

    Buenas, he realizado todos los pasos, tengo una fuente de git para los playbooks, vi que no le pusiste credenciales al proyecto. Cuando quiero crear una plantilla ingreso el nombre del proyecto y el inventario pero no me da opción para escojger un playbook. De dónde los toma? los va a traer del repositorio? o de alguna carpeta local del servidor?

    Reply
  4. Seo Mago (@seomago) says

    15 April, 2019 at 7:36

    Excelente guia sobre AWX

    Reply
  5. Seo Mago (@seomago) says

    15 April, 2019 at 7:39

    Estaria bien una introduccion para usar los inventarios dinámicos, y como cambiar el logo de AWX. Gracias

    Reply
  6. Rogger Caicedo says

    1 July, 2022 at 17:29

    No entiendo el siguiente paso:

    Lanzaremos el playbook, el cual desplegará todos los servidores necesarios para su correcto funcionamiento:
    root@ansible:~/awx-install# ansible-playbook -i awx/installer/inventory awx/installer/install.yml

    Busque en los repositorios de Git y no encontre el playbook “awx/installer/install.yml”

    podrias regalarme el playbook o detallarlo en el post??

    Reply
    • Albert says

      28 July, 2023 at 22:17

      es cierto lo que dices, en las ultimas versiones no veo que exista el directorio installer

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

  • Email
  • GitHub
  • LinkedIn
  • RSS
  • Twitter
  • YouTube

Gold Partners

Silver Partners

Libros Gratuitos

Cloud por vExperts
VMware por vExperts

VMware vExpert

Puesto 16 en Top vBlog

Calendario de Posts

August 2018
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
2728293031  
« Jul   Sep »

Disclaimer

Todas las opiniones expresadas en este sitio son las mías propias y no representan las opiniones de ninguna compañía con la que haya trabajado, esté trabajando o vaya a estar trabajando.

Copyright © 2026 · El Blog de Jorge de la Cruz