Você está cansado de executar manualmente playbooks e comandos do Ansible toda vez no seu controlador de host Ansible? Por que não usar uma interface web e facilitar sua vida com o Ansible AWX?
O AWX é uma aplicação web de código aberto patrocinada pela Red Hat que fornece uma interface de usuário e API para realizar todas as tarefas do Ansible. E neste tutorial, você aprenderá a instalar o Ansible AWX em uma máquina Ubuntu e gerenciar inventários usando o Ansible AWX.
Eleve seu jogo com automação altamente eficaz usando o Ansible AWX hoje!
Pré-requisitos
Este tutorial consiste em instruções passo a passo. Se você quiser acompanhar, certifique-se de ter o seguinte em vigor:
- Um host controlador Ansible – Este tutorial usa o Ansible v2.11.7 em uma máquina com a versão Ubuntu 20.04.4 LTS.
- Docker – Este tutorial utiliza o Docker v19.03.11 em uma máquina com a versão Ubuntu 20.04.4 LTS.
- Python v3.6 ou posterior instalado na máquina host do seu controlador Ansible – Este tutorial usa Python v3.8.10.
- A GitHub account with one private and one public repository created in GitHub that you will use to store Ansible Playbook.
Instalando Dependências e Configurando o Ansible AWX
O Ansible AWS foi a base para criar o Ansible Tower. O Ansible AWX torna o Ansible mais fácil de ser utilizado por equipes de TI para testes; em um laboratório, desenvolvimento, ou outro ambiente de POC.
Já que o Ansible AWS não vem instalado por padrão no seu sistema Linux, você primeiro terá que instalá-lo para poder executá-lo como um contêiner múltiplo usando o Ansible Playbook.
1. Execute cada comando abaixo para atualizar os pacotes do seu sistema e instalar o plugin docker-compose.

2. Em seguida, execute o seguinte comando para verificar a versão do docker compose instalada na sua máquina.
A saída abaixo mostra que a última versão do Docker Compose, v2.5.0, está instalada, confirmando que o Docker Compose está corretamente instalado.

3. Execute cada comando abaixo para instalar pacotes como pré-requisitos para trabalhar com o Ansible AWX.



4. Agora, execute os seguintes comandos para baixar (wget) o arquivo de pacote AWX do repositório Git público e, em seguida, descompacte o pacote.

5. Execute os comandos abaixo para mudar (cd) para o diretório de instalação do AWX (awx-17.1.0/installer/) e gerar a senha aleatória (pwgen).
Seu diretório de instalação do AWX (awx-17.1.0/installer/) pode variar, dependendo da versão do Ansible AWX instalada em sua máquina.
Anote a senha gerada, pois você a usará como chave secreta na console do AWX.

6. Por fim, em seu editor de texto, abra o arquivo inventory dentro do diretório de instalação do AWX (awx-17.1.0/installer/). O arquivo inventory contém as configurações do AWX, que serão usadas ao fazer login na interface do AWX.
No arquivo de inventário, altere o valor de admin_password para password e secret_key com a senha aleatória que você gerou no passo cinco.

Instalando e Iniciando o Ansible AWX com o Ansible Playbook
Você configurou corretamente o Ansible AWX e agora é hora de instalá-lo usando um playbook do Ansible (install.yml). O playbook do Ansible install.yml vem com o pacote Ansible AWX que você extraiu. Este playbook contém tarefas para executar comandos para construir uma imagem Docker e executar vários containers.
1. Chame o comando ansible-playbook abaixo para executar o playbook do Ansible install.yml.
Abaixo, você pode ver que algumas tarefas mudaram de estado, indicando que o host AWX não estava no estado adequado e foi modificado para executar o comando.
Por outro lado, outras tarefas mostram um estado ok, o que indica que elas não requerem nenhuma alteração.

2. Em seguida, execute o comando docker abaixo para listar todos os containers Docker disponíveis.
O resultado abaixo mostra os containers em execução (awx_tasks, awx_redis, awx_web e awx_postgres), confirmando que o AWX está instalado corretamente.

3. Por fim, abra seu navegador favorito e acesse o Ansible AWX (https://AWX-HOST-IP:80). Certifique-se de substituir AWX-HOST-IP pelo endereço IP do seu host Ansible. Se tudo correr bem, você verá a página de login do Ansible AWX no seu navegador, como mostrado abaixo.
Forneça seu nome de usuário (admin) e senha (password) e clique em Log in para acessar o painel do Ansible AWX. Essas credenciais são as que você configurou na última etapa da seção “Instalando Dependências e Configurando o Ansible AWX”.
AWX instala automaticamente um certificado autoassinado para comunicação HTTPS, o que pode exigir aceitação em seu navegador.

Após fazer login, seu navegador será redirecionado para o Painel AWX, conforme mostrado abaixo.

Criando e Gerenciando Inventários
Agora que você tem acesso ao painel Ansible AWX, fique à vontade para trabalhar na automação de tarefas. Neste tutorial, você irá gerenciar vários componentes do Ansible dentro do Painel Ansible AWX. Mas antes, será necessário criar e gerenciar inventários.
1. No Painel AWX, clique em Inventários para abrir a lista de inventários armazenados no Ansible AWX. Por padrão, um inventário de demonstração está presente, conforme mostrado abaixo.
Ignore o inventário de demonstração e clique no botão suspenso Adicionar para criar um novo inventário.

2. Em seguida, especifique os parâmetros abaixo na página Criar novo inventário para configurar seu primeiro inventário no Painel Ansible AWX:
- Nome – ATA Learning (Você pode fornecer o nome que desejar).
- Descrição – Descreva o inventário, o que é opcional, mas ajuda a identificar inventários, entre muitos outros.
- Organização – Escolha a opção Padrão. O AWX cria uma organização padrão, mas você também pode criar a sua própria.
Depois de especificar todos os detalhes acima, clique no botão salvar, conforme mostrado abaixo.

3. Por último, clique na guia Inventários (painel esquerdo) para verificar se o inventário recém-criado (ATA Learning) existe, como mostrado abaixo.

Criando e Executando Trabalhos do Ansible
Você configurou com sucesso seu inventário, mas no momento ele não serve para nada, a menos que você o chame com um trabalho. Um trabalho é uma instância do AWX lançando um playbook do Ansible contra o inventário de um host. E, é claro, antes de poder chamar um trabalho, primeiro você precisa criar um:
Para criar um trabalho do Ansible e executá-lo:
1. Crie um arquivo YML dentro do repositório do GitHub e copie/cole o playbook abaixo. Você pode nomear o arquivo YML como quiser, mas este tutorial usa o playbook chamado ata.yml.

2. Vá para o painel de controle do Ansible AWX e clique em Projetos no painel esquerdo para acessar a lista de projetos disponíveis. Você precisará de um projeto antes de poder criar um trabalho.
Ignore o Projeto de Demonstração e clique no botão Adicionar para criar um novo projeto.

3. Forneça os detalhes do novo projeto conforme abaixo e clique em Salvar para salvar o novo projeto:
- Nome – O nome do projeto pode ser qualquer coisa que você goste, mas este tutorial define o nome do projeto como myproject.
- Descrição – Assim como em seu inventário, adicionar uma descrição é opcional, mas ajuda a identificar projetos uns dos outros.
- Organização – Semelhante ao seu inventário, escolha Padrão para a organização.
- Tipo de Credencial de Controle de Origem – Escolha Git como seu SCM.
- URL de Controle de Origem – Especifique o URL do GitHub do seu código-fonte.

4. Após criar um projeto, clique em Modelos na barra lateral esquerda para acessar todos os modelos disponíveis, conforme mostrado abaixo.
Na página Modelos, clique no botão suspenso Adicionar e escolha a opção Adicionar modelo de trabalho para criar um modelo.

5. Agora, especifique os detalhes abaixo conforme o exemplo e clique em Salvar na parte inferior para salvar o novo modelo de trabalho:
- Nome – Defina o nome do modelo de trabalho como desejar, mas este tutorial define o nome do modelo de trabalho como myjob.
- Tipo de Trabalho – Defina a ação que o trabalho realizará (Executar).
- Projeto – Escolha o projeto que você criou no terceiro passo (myproject).
- Inventário – Escolha o inventário que você criou no segundo passo da seção “Criando e Gerenciando Inventários” (ATA Learning).
- Manual – Escolha o manual que você criou na etapa um da seção “Criando e Executando Tarefas do Ansible” (ata.yml).

6. Por fim, na página de Modelos, inicie a tarefa recém-criada com o seguinte:
- Clique na tarefa (minhatarefa) para acessar a página de informações da tarefa.
- Navegue até a aba Detalhes, onde você verá os detalhes da tarefa.
- Clique em Iniciar na parte inferior da página para iniciar a tarefa.

Como você pode ver abaixo, a tarefa foi executada com sucesso no localhost e listou todos os arquivos dentro do diretório especificado no manual (ata.yml).

Conclusão
Neste tutorial, você aproveitou a ferramenta de código aberto Ansible AWX para gerenciar manuais do Ansible, inventários e tarefas com um único painel de controle de IU. Você aprendeu a executar uma tarefa do Ansible, como listar arquivos em um diretório específico.
Agora que você tem um conhecimento sólido do software Ansible AWX, está disposto a executar todos os seus futuros manuais do Ansible usando o Ansible AWX? Talvez queira automatizar tarefas adicionando tarefas cron?