AWX: Interface Web para Ansible na PME em 2026

Já tem Ansible a funcionar com playbooks em YAML e inventários em ficheiros. Mas quando a equipa cresce, gerir tudo pela linha de comandos torna-se um gargalo. O AWX é a interface web de código aberto que traz visibilidade, controlo de acessos e agendamento ao seu Ansible — sem custos de licenciamento.

Neste artigo

1. Introdução

O AWX é o projecto de código aberto que serve de base ao Ansible Automation Platform da Red Hat. Para uma PME que já automatiza com Ansible mas precisa de uma interface gráfica, controlo de acessos por equipa e agendamento, o AWX é a solução sem custo de licença.

Num cenário típico, o sysadmin executa ansible-playbook manualmente e partilha credenciais por mensagens. À medida que a equipa cresce, não há registo de quem executou o quê, não há aprovações antes de mudanças em produção, e o agendamento depende de cron jobs dispersos. O AWX resolve tudo isto com rastreabilidade e RBAC.

2. O que é o AWX

O AWX (Ansible Web eXecutable) é mantido pela comunidade Ansible e pela Red Hat no repositório oficial. É o upstream do Ansible Automation Platform — o que aparece primeiro no AWX chega depois ao AAP.

  • Interface web — dashboard com histórico de execuções e registos em tempo real.
  • RBAC — organizações, equipas e utilizadores com permissões granulares.
  • Inventários dinâmicos — integração com AWS, Azure, VMware, Proxmox.
  • Projectos Git — sincroniza playbooks a partir de repositórios.
  • Templates — parametriza execuções com variáveis e surveys.
  • Schedules — agendamento estilo cron sem intervenção manual.
  • Workflows — encadeia jobs com lógica condicional.

ℹ AWX vs AAP: O AWX é gratuito e sem suporte oficial. O AAP adiciona suporte enterprise, clusters activo-activos e execução isolada. Para a maioria das PME, o AWX é mais que suficiente.

3. Instalação via Docker

O método recomendado em 2026 é via Docker Compose, usando o instalador do repositório oficial. Funciona em qualquer Linux com Docker (Ubuntu, Debian, Rocky, AlmaLinux).

Pré-requisitos: Docker 24+, 4 GB RAM mínimo, 20 GB disco, Python 3.10+, Git.

# Clonar o repositório oficial
git clone https://github.com/ansible/awx.git
cd awx/awx-compose

# Gerar a chave secreta
openssl rand -hex 30

Crie o ficheiro env.txt:

DATABASE_PASSWORD=SenhaForteAqui
SECRET_KEY=chave_gerada_no_passo_anterior
AWX_ADMIN_PASSWORD=admin123
HOST_PORT=8042

Inicie os contentores:

docker compose up -d
docker compose ps

Após 2-3 minutos, o AWX estará em http://servidor:8042. Login predefinido: admin com a senha definida em AWX_ADMIN_PASSWORD.

⚠ Atenção: A porta 8042 é HTTP sem encriptação. Em produção, coloque um reverse proxy (Nginx ou Caddy) com TLS. Nunca exponha o AWX directamente à Internet sem HTTPS.

4. Configurar Inventários e Projectos

A hierarquia do AWX é: Organização → Equipa → Utilizadores. Comece por criar uma organização em Administration → Organizations e uma equipa em Teams.

Credenciais

Em Resources → Credentials, registe: Machine (utilizador e chave SSH para os hospedeiros), Git (token de acesso ao repositório) e Vault (password do Ansible Vault).

✓ Boa prática: As credenciais são encriptadas na base de dados. Os utilizadores usam-nas sem precisar de conhecer a senha SSH ou a chave privada.

Inventários

Em Resources → Inventories, crie um inventário estático (hospedeiros introduzidos manualmente) ou dinâmico (liga a AWS, VMware, Proxmox e actualiza automaticamente). Exemplo de inventário estático:

[web]
web01.empresa.pt ansible_host=10.0.1.10
web02.empresa.pt ansible_host=10.0.1.11

[db]
db01.empresa.pt ansible_host=10.0.2.20

[producao:children]
web
db

Projectos

Em Resources → Projects, crie um projecto que aponta para o repositório Git com os playbooks. O AWX faz git pull antes de cada execução, garantindo a versão mais recente.

5. Templates e Schedules

Os Job Templates definem qual o playbook, inventário, credenciais e variáveis. Em vez de escrever ansible-playbook -i inv playbooks/site.yml -l web, configura tudo no template e executa com um clique.

Criar template: Resources → Templates → Add job template. Seleccione Project, Playbook, Inventory, Credential. Defina Limit (ex: web) e grave. Teste com Launch.

Surveys

As surveys criam formulários que pedem input ao utilizador antes de executar. Por exemplo, um template de restart pode pedir qual o serviço e confirmar a operação em produção.

Schedules

Agende execuções periódicas sem intervenção manual:

# Backup da base de dados todos os dias às 02:00
Frequency: Day
Start time: 02:00
Timezone: Europe/Lisbon

# Patches aos sábados às 04:00
Frequency: Week
Days of week: Saturday
Start time: 04:00
Timezone: Europe/Lisbon

Workflows

Os Workflow Templates encadeiam jobs com lógica condicional: actualizar base de dados → se sucesso, reiniciar aplicação → se falha, notificar Slack. Substitui scripts shell complexos que chamam ansible-playbook em sequência.

6. Comparação AWX vs Ansible CLI

Funcionalidade Ansible CLI AWX
Interface Linha de comandos Web (navegador)
Controlo de acessos Permissões Unix RBAC granular por equipa
Credenciais Ficheiros no disco Encriptadas na base de dados
Agendamento Cron do SO Schedules integrados com fuso
Histórico Logs em ficheiros Dashboard com registos persistentes
Aprovação pré-execução Não nativo Nós de aprovação em workflows
Notificações Scripts manuais Slack, email, webhooks integrados
Custo Gratuito Gratuito (código aberto)
Recursos Mínimos (Python) Servidor 4+ GB RAM

ℹ Quando manter a CLI: Se tem um único sysadmin e menos de 10 servidores, a CLI continua mais simples. O AWX justifica-se a partir de 2+ pessoas a executar Ansible ou necessidade de agendamento e auditoria.

7. Boas Práticas

Versionar tudo em Git

Os playbooks, inventários e roles devem estar num repositório Git. O AWX sincroniza a partir do Git — o repositório é a fonte de verdade, não o AWX. Use branches (main para produção) e merge requests para revisão antes de aplicar em produção.

Segredos com Ansible Vault

Nunca armazene senhas em texto claro nos ficheiros YAML. Use Ansible Vault e registe a password como credencial do tipo Vault no AWX. O desencriptação é automática durante a execução.

RBAC desde o início

Configure organizações e equipas antes de criar templates. Atribua execute apenas a quem precisa e reserve admin para sysadmin sénior. O AWX é tão seguro quanto as permissões que configura.

Cópia de segurança regular

Toda a configuração está na base de dados PostgreSQL. Faça backup regular:

# Backup da base de dados do AWX
docker exec awx_postgres pg_dump -U awx awx > backup_awx_$(date +%Y%m%d).sql

TLS e acesso seguro

Coloque o AWX atrás de um reverse proxy com TLS (Nginx, Caddy ou Traefik). Limite o acesso à porta por firewall a IPs da rede interna ou VPN. Active a auditoria em Settings → Logging.

✓ Resumo: O AWX traz para a PME capacidades que antes exigiam ferramentas pagas: interface web, RBAC, agendamento, auditoria e workflows. Com a instalação via Docker e playbooks em Git, a transição da CLI para o AWX é directa e o retorno é imediato em produtividade e segurança.