Introdução
O Ansible Tower foi, por muitos anos, a interface corporativa oficial da Red Hat para gerenciamento centralizado de automações Ansible, com recursos de RBAC (controle de acesso baseado em papéis), agendamento, workflows visuais e API REST completa. Atualmente, o produto comercial evoluiu para o Red Hat Ansible Automation Platform (AAP), sendo distribuído oficialmente apenas para Red Hat Enterprise Linux (RHEL), sem suporte oficial da Red Hat para Ubuntu. Para quem deseja essa mesma experiência no Ubuntu Linux, o caminho recomendado é o AWX, o projeto upstream open source que deu origem ao Tower. Neste tutorial, explicamos essa diferença e mostramos como subir o AWX no Ubuntu via Docker, obtendo uma experiência equivalente ao Tower sem custo de licenciamento.
Pré-requisitos
- Ubuntu Linux 22.04 LTS ou superior, com pelo menos 4 GB de RAM e 2 vCPUs.
- Docker Engine e Docker Compose instalados.
- Git instalado para clonar o repositório do AWX Operator ou do awx-on-docker.
- Acesso root ou sudo na máquina.
Por que não instalar o Tower diretamente no Ubuntu
O Ansible Tower/AAP é empacotado oficialmente em RPM e depende de bibliotecas específicas do ecossistema RHEL/CentOS. Tentar portá-lo manualmente para Ubuntu (baseado em Debian) gera inconsistências de dependências e não é suportado pela Red Hat. Por isso, a recomendação técnica para Ubuntu é usar o AWX, que é o mesmo código-base sem o suporte comercial.
Passo 1: Instalando dependências
sudo apt update && sudo apt upgrade -y
sudo apt install docker.io docker-compose-v2 git python3-pip -y
sudo systemctl enable --now dockerPasso 2: Clonando o projeto AWX (modo Docker Compose)
A forma mais simples de rodar o AWX em uma única máquina Ubuntu é via o projeto comunitário awx-on-docker:
git clone https://github.com/kurokobo/awx-on-docker.git
cd awx-on-dockerPasso 3: Configurando variáveis de ambiente
Copie o arquivo de exemplo e ajuste as senhas padrão:
cp .env.example .env
nano .envAWX_ADMIN_USER=admin
AWX_ADMIN_PASSWORD=senha_admin_segura
AWX_POSTGRES_PASSWORD=senha_postgres_segura
AWX_SECRET_KEY=uma_chave_secreta_bem_grande_e_unicaPasso 4: Subindo os containers
sudo docker compose up -d --buildAcompanhe os logs até que todos os serviços (postgres, redis, awx-web, awx-task) estejam saudáveis:
sudo docker compose logs -f awx-webPasso 5: Acessando a interface
Após a inicialização completa (pode levar alguns minutos), acesse:
https://<IP_DO_SERVIDOR>:8443Faça login com o usuário e senha definidos em AWX_ADMIN_USER e AWX_ADMIN_PASSWORD.
Passo 6: Estrutura equivalente ao Tower
Dentro da interface, configure os mesmos conceitos que existiam no Tower:
- Credentials: cadastre chaves SSH e credenciais de máquina.
- Inventories: crie inventários estáticos ou dinâmicos (ex: plugin AWS EC2).
- Projects: vincule ao repositório Git com seus playbooks.
- Job Templates: defina qual playbook executar, com quais credenciais e em qual inventário.
- Workflows: encadeie múltiplos job templates para pipelines de automação complexos.
Boas práticas
- Para ambientes corporativos que exigem suporte oficial da Red Hat, avalie a licença do Ansible Automation Platform rodando em RHEL, em vez de tentar adaptar o Tower ao Ubuntu.
- Configure backups automáticos do banco PostgreSQL do AWX, que armazena todo o histórico de execuções.
- Utilize certificados TLS válidos (não apenas o autoassinado padrão) em ambientes de produção.
- Integre o AWX com LDAP/SAML para autenticação centralizada em ambientes corporativos.
- Monitore o uso de recursos dos containers, já que o AWX é mais pesado que alternativas como o Semaphore.