Está cansado de executar os playbooks do Ansible e comandos do Ansible manualmente toda vez no seu controlador de host do Ansible? Por que não usar uma interface web e facilitar sua vida com este 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 um servidor Ubuntu e gerenciar inventários usando o Ansible AWX.
Aprimore sua automação de forma altamente eficaz usando o Ansible AWX hoje!
Pré-requisitos
Este tutorial é composto por instruções passo a passo. Se você deseja acompanhar, certifique-se de ter o seguinte em vigor:
- Um host controlador do Ansible – Este tutorial utiliza 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 hospedeira do controlador do 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 a criação da Torre Ansible. O Ansible AWX torna o Ansible mais fácil para as equipes de TI usarem para testes; em um laboratório, desenvolvimento ou outro ambiente POC.
Já que o Ansible AWS não vem instalado no seu sistema Linux por padrão, você primeiro terá que instalar o Ansible AWS para poder executá-lo como um multi-contêiner usando o Playbook do Ansible.
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 compactado do 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 ser diferente dependendo da versão do Ansible AWX instalada em sua máquina.
Anote a senha gerada, pois você a utilizará como chave secreta no console do AWX.

6. Por fim, no seu editor de texto, abra o arquivo inventory dentro do diretório do instalador 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 usuário 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. Esse playbook contém tarefas para executar comandos para construir uma imagem Docker e executar vários contêineres.
1. Execute o comando ansible-playbook abaixo para executar o playbook Ansible
Abaixo, você pode ver que algumas tarefas tiveram o status alterado, 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 status ok, indicando que não requerem alterações.

2. Em seguida, execute o comando docker abaixo para listar todos os contêineres Docker disponíveis.
A saída abaixo mostra os contêineres em execução (awx_tasks, awx_redis, awx_web e awx_postgres), confirmando que o AWX foi instalado corretamente.

3. Finalmente, 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, conforme 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 no seu navegador.

Após o login, o 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, sinta-se à vontade para trabalhar na automação de tarefas. Neste tutorial, você gerenciará vários componentes do Ansible dentro do Painel Ansible AWX. Mas primeiro, você terá que 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 de menu Adicionar para criar um novo inventário.

2. Em seguida, especifique os parâmetros abaixo na página Criar novo inventário para configurar o seu primeiro inventário no Painel Ansible AWX:
- Nome – ATA Learning (Você pode fornecer o nome que desejar).
- Descrição – Descreva o inventário, 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, conforme mostrado abaixo.

Criando e Executando Tarefas do Ansible
Você configurou com sucesso seu inventário, mas ele não serve para nada agora, a menos que você o chame com uma tarefa. Uma tarefa é uma instância do AWX lançando um playbook do Ansible contra o inventário de um host. E, é claro, antes de chamar uma tarefa, você primeiro precisa criar uma:
Para criar e executar uma tarefa do Ansible:
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 do seu dashboard 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 uma tarefa.
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 com os seguintes 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 meuprojeto.
- Descrição – Assim como em seu inventário, adicionar uma descrição é opcional, mas ajuda a identificar projetos um do outro.
- 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. Depois de criar um projeto, clique em Modelos na barra lateral esquerda para acessar todos os modelos disponíveis, como mostrado abaixo.
Na página de 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 segue, 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 meutrabalho.
- Tipo de Trabalho – Defina a ação que o trabalho executará (Executar).
- Projeto – Escolha o projeto que você criou no terceiro passo (meuprojeto).
- Inventário – Escolha o inventário que você criou no segundo passo da seção “Criando e Gerenciando Inventários” (ATA Learning).
- Guia – Escolha o guia que você criou no passo um da seção “Criando e Executando Trabalhos do Ansible” (ata.yml).

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

Como você pode ver abaixo, o trabalho foi executado com sucesso no localhost e listou todos os arquivos dentro do diretório especificado no guia (ata.yml).

Conclusão
Neste tutorial, você aproveitou a ferramenta open-source Ansible AWX para gerenciar guias do Ansible, inventários e guias com um único painel de controle de interface do usuário. Você abordou a execução de um Trabalho 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 guias do Ansible usando o Ansible AWX? Talvez você queira automatizar tarefas adicionando trabalhos cron?