Automação Altamente Eficaz com Ansible AWX

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:

  • 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.

# Atualizar pacotes
sudo apt-get update
# Instalar Docker Compose
sudo apt-get install docker-compose-plugin
Updating System Packages and Installing docker-compose

2. Em seguida, execute o seguinte comando para verificar a versão do docker compose instalada na sua máquina.

docker compose version

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.

Verifying Docker Compose Version

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

# Instala o NodeJS, já que o AWS tem uma dependência do NodeJS.
sudo apt install nodejs npm
# Instala o Python3, que executa o Ansible Playbook posteriormente.
sudo apt install python3-pip git pwgen unzip
# Instala o requests para permitir o envio fácil de solicitações HTTP/1.1.
sudo pip3 install requests==2.22.0 docker-compose==1.29.2
Installing npm Software
Installing Python
Installing Requests

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.

# Baixa o arquivo compactado do pacote AWX
wget https://github.com/ansible/awx/archive/17.1.0.zip
# Descompacta o arquivo compactado do pacote AWX
unzip 17.1.0.zip
Downloading the AWS Package from the Git Repository

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.

cd awx-17.1.0/installer/
pwgen -N 1 -s 30

Anote a senha gerada, pois você a utilizará como chave secreta no console do AWX.

Generating a Random Password

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.

Updating Credentials of Ansible AWX in the Inventory File

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 install.yml.

ansible-playbook -i inventory install.yml 

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.

Executing the Ansible Playbook (install.yml)

2. Em seguida, execute o comando docker abaixo para listar todos os contêineres Docker disponíveis.

docker ps

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.

Verifying all Docker Containers

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.

Accessing the Ansible AWX Dashboard UI

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

Viewing the AWX Dashboard

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.

Creating a New Inventory

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:

  • NomeATA 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.

Creating an Inventory in the Ansible AWX Dashboard

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.

Verifying the Inventory in the Ansible AWX Dashboard

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.

---
  - name: "Playing with Ansible."
# O Playbook do Ansible será executado no Localhost onde o AWX está instalado
    hosts: localhost
    connection: local
    tasks:
# A tarefa abaixo executará a lista de diretórios e arquivos presentes
    - name: "just execute a ls -lrt command"
      shell: "ls -lrt"
      register: "output"
# A saída da tarefa acima será exibida na tela
    - debug: var=output.stdout_lines
Creating a YML File in the Git Repository

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.

Initializing Adding a New Project

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.
Creating a New Project

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.

Creating a New Job Template

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).
Specifying Job Template Details

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.
Launching the Newly-created Job

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).

Executing the Job Template

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?

Source:
https://adamtheautomator.com/ansible-awx/