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
- 2. O que é o AWX
- 3. Instalação via Docker
- 4. Configurar Inventários e Projectos
- 5. Templates e Schedules
- 6. Comparação AWX vs Ansible CLI
- 7. Boas Práticas
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.