Por: Adelmo da Silva – consultor de sistemas
A principal função da tecnologia, seja em qualquer campo, ou sector, é de tornar as tarefas mais eficientes e eficazes e é por isso que está em constante evolução. A cada dia mais empresas estão migrando para ambientes virtualizados que proporcionam, entre outras coisas, redução com suporte nos servidores, custos de manutenção e recursos, maior eficiência operacional, maior velocidade na implantação de recursos e de novos serviços, melhoria na capacidade de recuperação de desastres com um tempo menor de recuperação (downtime), entre outras. Segundo o relatório da GVR (Grand View Research), entre 2022 e 2030, o crescimento do mercado mundial de virtualização será de 16,3%. Em 2021, foi reportado um investimento de US$ 6,3 bilhões no sector. Ou seja, cada vez mais profissionais em virtualização, em particular os especializados em gestão desses ambientes, serão recrutados.
Créditos: D.R
Actualmente, com tantos servidores virtuais, e físicos também, em um único Data Center, é de se imaginar como a gestão destas VMs (Máquinas Virtuais, em inglês) seja desgastante e complexa. Tarefas como configurações de DNS, de serviços, hora e data, entre outros, tornam-se muito demoradas. E é ai que entra o Ansible.
Com o Ansible, devidamente configurado (escrevi um artigo sobre o Ansible e a Automação aqui), é possível fazer dezenas de configurações (se não centenas, aí depende da sua necessidade) em um parque com centenas de servidores. Um exemplo disso são demandas simples que recebo. Por exemplo, uma reconfiguração de DNS de um cliente em todo parque virtualizado, pois houve uma troca de servidor. Digamos que nesse parque existam 50 VMs Linux (30 VMs Oracle Linux e 20 Red Hat Enterprise) e 20 VMs Windows Server 2019, totalizando 70 VMs. Se formos entrar em cada Linux, por exemplo, via SSH e alteramos os endereços DNS, em cada server gastaríamos aproximadamente de 02 minutos (dependendo da conexão, utilização do servidor, etc. Apenas um exemplo, ok?), entre login, alteração e logoff, seria um total de 100 minutos apenas nos servidores Linux. Já nos servidores Windows, sendo servidores com interface gráfica, seria no mínimo uns 30 segundos a mais. Em suma, gastaríamos cerca de, aproximadamente, 150 minutos, ou 02h30m para apenas um profissional. Com 02 profissionais dedicados à esta tarefa, gastaríamos cerca de 1h15m para completá-la. Neste caso, estaríamos desperdiçando um recurso que poderia actuar em outras demandas.
Utilizando o Ansible, já com um playbook pronto, o tempo seria reduzido para, no máximo, 02 minutos. Sim, rápido assim! Este tempo seria apenas para actualizar o playbook com o(s) grupo(s) de servidores configurados no inventário e a execução deste playbook. Pronto, 70 VMs com o novo endereço DNS configurado.
Por exemplo, este playbook para alteração do DNS no Linux:
—
– hosts: linux-servers
gather_facts: yes
become: yes
become_user: sudo
tasks:
– name: Fazendo o backup do atual resolv.conf
copy:
src: ‘/etc/resolv.conf’
dest: ‘/etc/resolv.conf.bkp’
– name: Atualizando o Resolv.conf
copy:
src: resolv.conf
dest: ‘/etc/resolv.conf’
force: yes
Repare que aqui eu instruo o Ansible que atue no grupo de servidores LINUX-SERVERS. As tarefas dele serão fazer um backup do atual arquivo de configuração RESOLV.CONF (que é onde estão os endereços de DNS no Linux) e, em seguida, copiar um arquivo com o mesmo nome do atual, mas com os novos endereços DNS solicitado pelo cliente. Com isso, temos um ciclo de backup e atualização. Sim, também é possível utilizar uma inserção de texto diretamente no arquivo, mas o que quero aqui é criar um arquivo de backup.
Executando o playbook com o Ansible, temos o seguinte:
PLAY
********************************************************************
TASK [Gathering Facts]
*******************************************************************************************
ok: [linux_server-01]
ok: [linux_server-02]
ok: [linux_server-03]
ok: [linux_server-04]
ok: [linux_server-05]
ok: [linux_server-06]
ok: [linux_server-07]
ok: [linux_server-08]
ok: [linux_server-09]
ok: [linux_server-10]
TASK [Fazendo o backup do atual resolv.conf] *********************************************************************************
changed: [linux_server-01]
changed: [linux_server-03]
changed: [linux_server-03]
changed: [linux_server-04]
changed: [linux_server-05]
changed: [linux_server-06]
changed: [linux_server-07]
changed: [linux_server-08]
changed: [linux_server-09]
changed: [linux_server-10]
TASK [Atualizando o Resolv.conf] ***********************************************************************
changed: [linux_server-01]
changed: [linux_server-02]
changed: [linux_server-03]
changed: [linux_server-04]
changed: [linux_server-05]
changed: [linux_server-06]
changed: [linux_server-07]
changed: [linux_server-08]
changed: [linux_server-09]
changed: [linux_server-10]
PLAY RECAP *******************************************************************************************************
linux_server-01 ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
linux_server-02 ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
linux_server-03 ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
linux_server-04 ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
linux_server-05 ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
linux_server-06 ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
linux_server-07 ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
linux_server-08 ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
linux_server-09 ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
linux_server-10 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Aqui utilizei meu laboratório em Docker com 10 VMs Linux para fins de exemplo, pois não posso usar dados reais.
Repito: serão 70 VMs Linux de uma única vez em pouco menos de 02 minutos. O que nos dá tempo para saborear aquele cafezinho!
Lembre-se: Ansible é vida em T.I.