Automação é o caminho e o Ansible, seu guia

Provisionando um laboratório para estudar o Ansible e outras coisas

Por: Adelmo da Silva – consultor de sistemas

Imagine um profissional de TI que atua em infra-estrutura, Middleware, etc, que gerencia um data center com cerca de 500 máquinas virtuais/físicas, entre elas Linux e Windows. Numa bela manhã de segunda-feira, tomando um cafezinho, a seguinte demanda chega por e-mail com status de urgente: “Precisamos alterar os endereços de DNS e o Gateway de todos os servidores até quarta-feira”. Mesmo com uma equipa de 3 a 5 técnicos, levariam horas até reconfigurar tudo manualmente. Tempo esse que não temos e nem podemos perder com coisas tão triviais. “Ora, poderíamos utilizar o Active Directory para isso!”, você vai dizer. Mas, neste data center temos servidores Linux, que, por padrão, dariam muita dor de cabeça na maioria das vezes com o AD.

E é aqui que entra a automação, que é o uso de recursos da tecnologia para que tarefas sejam executadas de forma rápida, efectiva e confiável com a menor intervenção humana possível. Ok, mas como fazer isso de forma rápida e prática? Para isso temos uma das melhores ferramentas do mercado: o Ansible.

O Ansible é uma ferramenta de automação de TI open-source, da Red Hat, que permite que os profissionais gerenciem e configurem sistemas de computador, dispositivos de rede, serviços em cloud de forma eficiente, prática e segura. Essa ferramenta milagrosa permite automatizar tarefas de infra-estrutura, como provisionamento, configuração, actualização, gerenciamento de aplicativos e orquestração de implantações (Deployments), entre outros. Em outras palavras, o Ansible é uma mãe! Ele faz tudo para você. E ele só precisa de algumas coisas da sua parte, como dedicação e boa vontade.

new_cognito

Mas, como ele faz isso? Simples. Esse rapazinho utiliza uma conexão SSH de confiança, utilizando um usuário previamente configurado em todas os servidores e, por fim, mas não menos importante (não mesmo!), um playbook com o formato YAML, com todas as instruções para que a demanda seja executada. E, para unir tudo isso, é preciso ter o arquivo de inventário, que por padrão chamado de HOSTS no Ansible. Neste inventário estarão todos os servidores separados por grupos, como “Data Base” ou “Webservices”, por exemplo. O grande trunfo do Ansible, além da sua simplicidade e dinamismo, são os módulos, que são scripts autónomos que podem ser usados dentro, ou fora, de um playbook do Ansible. Estes módulos abrangem desde instalação de pacotes, comandos próprios de cada Sistema Operacional como COPY, DELETE, SCP, MOVE, ECHO, entre outros, além de módulos reservados do Ansible como, por exemplo:

ANSIBLE_HOSTNAME: que exibe o nome do computador;
ANSIBLE_DISTRIBUTION_VERSION: que exibe qual distribuição instalado no servidor;
ANSIBLE_DNS: que exibe o endereço DNS configurado no servidor;
ANSIBLE_DEFAULT_IPV4: que exibe o endereço IP do servidor, entre outros milhares de módulos que funcionam em diversos Sistemas Operacionais, Cloud Services, como AWS, Google Cloud, Azure, etc.

 

Automação é o caminho e o Ansible, seu guia

new_cognito

Créditos: D.R

Em um dos vídeos da Red Hat Summit em 2019, Landon Holley (Especialista em Automação de Infra-estrutura) e James Mighion ( Engeheiro Senior Site Reliability — Ansible Cloud Services), ambos da Red Hat, afirmaram que o Ansible pode controlar até 15.000 dispositivos de rede de uma vez…

Acho que ouvi seu queixo cair…!

Neste artigo não irei focar em configurações ou comandos para usar o Ansible, as quero apenas despertar a sua curiosidade e interesse pela ferramenta.

new_cognito

Diariamente utilizo o Ansible para resolver diversas situações em um parque com mais de 100 servidores Linux, Solaris e Windows Servers. De tempos em tempos temos demandas como essas que citei anteriormente. Mas, o mais incrível foi uma das demandas que recebi uma vez onde o cliente solicitava que um usuário fosse criado (aqui vamos chamar de USER01) em todo os ambientes que tínhamos. O prazo foi justamente de 3 a 4 dias, contando a partir daquela segunda-feira ensolarada e com aquele cafezinho na mesa. No instante que recebi essa demanda, eu já possuía vários playbooks em meus laboratórios com Ansible. E o que eu fiz foi só adaptar para os ambientes e rodar o playbook. E… Voilà, usuário USER01 configurado em mais de 100 servidores em menos de 08 segundos. Não, não é magia, é tecnologia de automação.

Um outro exemplo é a instalação de um servidor web Apache no grupo de servidores chamado Webservices, que é um cluster de 05 servidores com Oracle Linux:


– hosts: webservices
become: yes
name: “Instalando e Configurando Servidor Apache”
tasks:
– name: “Instalando Servidor Apache”
yum:
name: httpd
state: latest
– name: “Verificando se o Servidor Apache está em Execução”
service:
name: httpd
state: started

O resultado será:

new_cognito

PLAY [Instalando e Configurando Servidor Apache]

********************************************************************

TASK [Gathering Facts]

*******************************************************************************************
ok: [webserver-01]
ok: [webserver-02]
ok: [webserver-03]
ok: [webserver-04]
ok: [webserver-05]

TASK [Install Apache Web Server]

*********************************************************************************
changed: [webserver-01]
changed: [webserver-02]
changed: [webserver-03]
changed: [webserver-04]
changed: [webserver-05]

TASK [Verificando se o Servidor Apache está em Execução] **********************************************************************
*
changed: [webserver-01]
changed: [webserver-02]
changed: [webserver-03]
changed: [webserver-04]
changed: [webserver-05]

PLAY RECAP

new_cognito

*******************************************************************************************************
webserver-01 ok=3 changed=2 unreachable=0 failed=0 skipped=0    rescued=0    ignored=0  
webserver-02 ok=3 changed=2 unreachable=0 failed=0

webserver-03 ok=3 changed=2 unreachable=0 failed=0
webserver-04 ok=3 changed=2 unreachable=0 failed=0
webserver-05 ok=3    changed=2    unreachable=0    failed=0

É mostrado que todo o processo ocorreu em cada servidor do cluster Webservices. E, no final, cada servidor “dando se ok” para o Ansible.

A flexibilidade e a escalabilidade do Ansible são realmente impressionantes. A facilidade da configuração dos servidores facilita, e muito, o processo inicial.

Na minha opinião, o principal ponto e o mais “trabalhoso” é criar essa relação de confiança entre o Ansible Master (servidor onde está o Ansible) e os demais servidores. Mas, nada que um ShellScript não resolva. Depois disso, fazer o levantamento dos endereços IP’s todos os servidores e criar o arquivo do inventário. Depois de ter configurado isso, aí é só começar a se dedicar aos playbooks.

new_cognito

Claro que nada vem de mão beijada. É preciso compreender toda a lógica do Ansible e enteder como cada módulo funciona de acordo com a sua demanda ou necessidade. Trabalhar com o Ansible acabou se tornando muito gratificante, depois que você entende sua lógica. Nos próximos artigos, vou explorar mais esta ferramenta, que me ajudou a ter mais agilidade em minhas demandas.

 

Partilhar artigo:

Versao3 - Cópia

Somos um portal de notícias, voltado às tecnologias de informação e inovação tecnológica. Informamos com Rigor, Objectividade e Imparcialidade. Primamos pela qualidade, oferecendo aos nossos leitores, a inclusão tecnológica e a literacia digital

+(244) 930747817

info@pti.ao | redaccao@pti.ao

Mais Lidas

Últimos Artigos

Desenvolvido Por SP Media