Introdução
O AWX é o projeto open source mantido pela Red Hat que serve de base para o Ansible Automation Platform (antigo Ansible Tower). Ele adiciona uma interface web completa, API REST, RBAC, agendamento de jobs e dashboards sobre o motor de automação do Ansible. Para equipes de TI industrial que gerenciam dezenas ou centenas de ativos — CLPs, gateways IoT, servidores SCADA e estações de engenharia — o AWX centraliza a execução e a auditoria das automações. Neste tutorial, vamos instalar o AWX no Ubuntu Linux utilizando Docker Compose, a forma mais indicada para ambientes single-node de teste ou pequena produção.
Pré-requisitos
- Ubuntu Linux 22.04 LTS ou 24.04 LTS.
- Mínimo de 4 GB de RAM e 20 GB de espaço em disco livre.
- Docker Engine e o plugin Docker Compose instalados.
- Git instalado.
- Portas 80/443 (ou customizadas) liberadas no firewall.
Passo 1: Instalando o Docker
sudo apt update
sudo apt install ca-certificates curl gnupg git -y
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
sudo systemctl enable --now dockerPasso 2: Obtendo o projeto de instalação
Vamos utilizar o repositório comunitário que empacota o AWX para Docker Compose:
git clone https://github.com/kurokobo/awx-on-docker.git
cd awx-on-dockerPasso 3: Configurando o ambiente
cp .env.example .envEdite o arquivo .env e defina valores seguros:
AWX_ADMIN_USER=admin
AWX_ADMIN_PASSWORD=Senha@Forte123
AWX_POSTGRES_PASSWORD=Postgres@Forte123
AWX_SECRET_KEY=chave-secreta-longa-e-aleatoria-para-producaoPasso 4: Subindo a stack
sudo docker compose up -d --build
sudo docker compose psO primeiro start pode levar de 5 a 10 minutos, pois o AWX executa migrações de banco de dados e coleta de arquivos estáticos. Acompanhe com:
sudo docker compose logs -f awx-taskPasso 5: Acessando o AWX
Acesse via navegador:
https://<IP_DO_SERVIDOR>:8443Use o usuário e senha configurados no .env para o primeiro login.
Passo 6: Configurando o primeiro Job Template
- Crie uma Credential do tipo "Machine" com a chave SSH privada dos hosts gerenciados.
- Crie um Inventory e adicione os hosts manualmente ou via inventário dinâmico (ex.: plugin de nuvem).
- Crie um Project apontando para o repositório Git com seus playbooks (ex.:
https://github.com/sua-empresa/playbooks-industriais.git). - Crie um Job Template selecionando o playbook (ex.:
deploy-agentes.yml), o inventário e a credencial criados. - Clique em Launch para executar e acompanhar o job em tempo real pela interface.
Erros comuns
- Containers reiniciando em loop: geralmente causado por memória insuficiente; garanta ao menos 4 GB de RAM disponíveis para a VM ou servidor.
- Erro de certificado SSL ao acessar a interface: o AWX gera um certificado autoassinado por padrão; substitua por um certificado válido em produção ou aceite o aviso do navegador apenas em ambiente de testes.
- Job falha com "Permission denied" no SSH: confira se a chave privada cadastrada na Credential corresponde à chave pública autorizada nos hosts gerenciados (
authorized_keys). - Timeout na primeira inicialização: é normal demorar alguns minutos; não interrompa o
docker compose upnos primeiros minutos.