
Administrar um servidor na mão é tranquilo. Administrar dez, atualizando pacote por pacote via SSH, é pedir para errar. O Ansible resolve isso: você descreve o estado desejado em YAML e ele aplica em todos os servidores — sem agente, só com SSH.
Instalando
No Ubuntu/Debian:
sudo apt update
sudo apt install ansible
ansible --version
Inventário: seus servidores
Crie o arquivo inventario.ini listando as máquinas:
[web]
web1.exemplo.com.br
web2.exemplo.com.br
[db]
db1.exemplo.com.br ansible_user=root
Teste a conexão com todos de uma vez:
ansible -i inventario.ini all -m ping
Primeiro playbook
Um playbook descreve o que deve existir no servidor. Exemplo real — garantir nginx instalado, rodando e com o firewall liberado:
---
- name: Configurar servidores web
hosts: web
become: true
tasks:
- name: Instalar nginx
apt:
name: nginx
state: present
update_cache: true
- name: Garantir nginx ativo no boot
service:
name: nginx
state: started
enabled: true
- name: Liberar HTTP e HTTPS no ufw
ufw:
rule: allow
port: "{{ item }}"
loop: ["80", "443"]
Execute:
ansible-playbook -i inventario.ini playbook.yml
O pulo do gato: idempotência
Rode o playbook duas vezes: na segunda, o Ansible não muda nada — ele só age quando o estado real difere do declarado. É isso que torna a automação segura: o playbook vira a documentação viva do servidor.
Comandos rápidos (ad-hoc)
# atualizar pacotes em todos os servidores web
ansible -i inventario.ini web -b -m apt -a "upgrade=dist update_cache=yes"
# reiniciar um serviço em um grupo
ansible -i inventario.ini db -b -m service -a "name=mariadb state=restarted"
Comece automatizando uma tarefa que você repete toda semana — em um mês você não vai mais lembrar como vivia sem.