O Que É Ansible? Gerenciamento de Configuração Explicado
Ansible é uma ferramenta de automação agentless que configura servidores e faz deploy de software executando tarefas ordenadas definidas em playbooks YAML via SSH.
O Ansible automatiza o trabalho repetitivo de configurar máquinas: instalar pacotes, editar arquivos de configuração, iniciar serviços. É agentless, conectando-se via SSH, e descreve a configuração desejada em playbooks YAML legíveis, tornando-o acessível tanto para desenvolvedores quanto para operadores.
O que é o Ansible
O Ansible é uma ferramenta open-source de automação para gerenciamento de configuração, deploy de aplicações e orquestração. Ele se conecta aos hosts gerenciados via SSH (sem agente necessário), e você descreve como cada host deve ficar em playbooks: listas ordenadas de tarefas que chamam módulos para impor o estado.
Playbooks e idempotency
Um playbook lista tarefas, cada uma invocando um módulo (instalar um pacote, copiar um arquivo, reiniciar um serviço). Os módulos são projetados para serem idempotent: executar um playbook duas vezes deixa o sistema no mesmo estado sem refazer trabalho que já está feito. Um arquivo de inventory lista os hosts e grupos que o playbook tem como alvo.
Um exemplo de playbook
Uma tarefa garante que um pacote esteja instalado e um serviço em execução.
- hosts: web
tasks:
- name: Install nginx
apt: { name: nginx, state: present }
- name: Start nginx
service: { name: nginx, state: started }Papel no CI/CD
No CI/CD, o Ansible executa etapas de configuração e deploy: um pipeline pode rodar um playbook para configurar servidores ou lançar uma nova versão de app depois que um build passa. Executar playbooks a partir do CI proporciona consistência e uma trilha de auditoria. Usar o modo "--check" em um pipeline pré-visualiza as mudanças sem aplicá-las, semelhante a um dry run.
Alternativas
O Terraform provisiona infraestrutura (criando servidores) enquanto o Ansible os configura, e os dois costumam ser usados juntos. Chef e Puppet são ferramentas de configuração baseadas em agente. Salt é outra opção. O Ansible é preferido por ser agentless, simples de começar e legível.
Principais conclusões
- O Ansible configura servidores de forma agentless via SSH usando playbooks YAML.
- Os módulos são idempotent, então reexecutar converge para o mesmo estado.
- No CI, ele executa etapas de configuração e deploy com uma trilha de auditoria.