Automatizando Servidores Linux com Ansible

Ansible automatizando servidores Linux

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.