Início / Serviços / Configuração de servidores
Serviço

Servidores configurados por código, não por memória

Pacotes, usuários, firewall, Docker, banco de dados, backup e hardening descritos em Ansible e aplicados do mesmo jeito em todos os servidores — na nuvem ou no seu datacenter. Reaplicar é seguro, reconstruir é rotina, e a configuração para de morar só na cabeça de alguém.

apcode@infra:~/ansible$
$ ansible-playbook -i inventario/producao site.yml
// aplica o estado desejado em 12 servidores
web-01  ok=34  changed=2
web-02  ok=34  changed=2
db-01   ok=41  changed=0
PLAY RECAP ***** failed=0 unreachable=0
// rodar de novo amanhã: changed=0.
// o servidor já está como deveria.

Quando esse serviço resolve um problema real

A partir do terceiro servidor, configurar à mão deixa de ser prático e vira fonte de incidente. Estes são os sintomas.

Cada servidor é diferente do outroMesma função, versões e ajustes distintos, porque foram montados em épocas diferentes por pessoas diferentes.

Subir um servidor novo leva diasÉ uma sequência longa de comandos que ninguém tem escrita por inteiro — e sempre falta um passo.

Atualização de segurança fica para depoisSem processo automatizado, aplicar correção em dez servidores é um trabalho manual que sempre perde para a urgência do dia.

Todo mundo entra como rootUm usuário e uma senha compartilhados por toda a equipe. O log mostra o que foi feito, mas não por quem.

Backup existe, restauração ninguém testouO trabalho roda todo dia e o e-mail diz "sucesso". Se ele restaura de verdade, é uma hipótese não verificada.

Firewall com regra que ninguém entendePortas abertas "para resolver na hora" que ficaram abertas para sempre, sem registro do motivo nem de quem pediu.

O coração do serviço

Automação com Ansible: um comando faz no parque inteiro o que uma pessoa faria em um servidor

Automatizar não é escrever um script que roda uma vez e ninguém mais entende. É descrever o estado em que o servidor deve estar e deixar a ferramenta cuidar do resto — verificando o que já está certo, corrigindo o que saiu do padrão e relatando exatamente o que mudou, em cada máquina.

O que muda na prática
Rodar de novo é seguro — e é o ponto principalO Ansible é idempotente: ele compara o estado atual com o descrito e mexe só na diferença. A segunda execução costuma reportar zero alterações. Isso é o que permite rodar a automação toda semana sem medo — e é o que a diferencia de um script, que sempre executa tudo de novo, dê no que der.
e o que sai do padrão volta sozinho
Correção de desvio automáticaAlguém mexeu no servidor à mão, na correria de um incidente? A próxima execução traz a máquina de volta ao que está escrito e mostra a diferença no relatório. O ambiente para de derivar em silêncio ao longo dos meses.
de 1 para 50 servidores sem mudar o processo
Escala sem multiplicar trabalhoAplicar uma correção de segurança em cinquenta máquinas custa o mesmo esforço humano que aplicar em uma: muda o inventário, não o procedimento. É aqui que a automação deixa de ser conforto e vira capacidade de resposta.
sem agente instalado, sem infraestrutura extra
Sem agente para instalar e manterO Ansible entra pelo SSH que o servidor já tem. Não há serviço rodando nas máquinas gerenciadas, nada para atualizar, nada para monitorar. Um servidor recém-criado já é gerenciável no minuto seguinte.
simulação antes de aplicar
// mostra o que mudaria, sem mudar nada
$ ansible-playbook site.yml --check --diff
web-01 changed: pacote nginx 1.24 → 1.26
web-01 changed: regra ufw 8080 removida
db-01  ok: nenhuma alteração
// só então, de verdade — e por ondas
$ ansible-playbook site.yml --limit web-01
PLAY RECAP ***** changed=2 failed=0
E o código vira a documentação Um wiki descreve o que alguém lembrou de escrever; o playbook descreve o que está de fato rodando, porque é dele que o servidor nasce. Documentação que não pode envelhecer, porque é ela que aplica a configuração — princípio detalhado em infraestrutura como código.

O que descrevemos em código

Cada bloco abaixo é um módulo reaproveitável: o mesmo código serve para o servidor da nuvem, para a máquina virtual do rack e para o ambiente de teste na sua máquina.

base
Base do sistema

Pacotes essenciais, fuso horário e sincronização de relógio, idioma, ferramentas de diagnóstico e ajustes de kernel. O ponto de partida idêntico para toda máquina.

usuarios
Usuários e acesso SSH

Um usuário nominal por pessoa, chave pública distribuída a partir do repositório, autenticação por senha desativada e permissão administrativa explícita.

firewall
Firewall

Regras declaradas por servidor: cada porta aberta tem destino, origem permitida e justificativa no histórico. Fechado por padrão, aberto por exceção.

docker
Docker e Docker Swarm

Engine instalada e configurada, redes criadas e — quando faz sentido — o modo cluster inicializado, para orquestrar contêineres sem a complexidade do Kubernetes.

apps
Aplicações em contêiner

Arquivos de composição e configuração entregues no servidor pelo mesmo fluxo, com variáveis por ambiente e credenciais vindas do cofre — nunca do repositório.

postgresql
Banco de dados

Instalação do PostgreSQL com a versão que você usa, regras de conexão, usuários e bases criados por código, e usuário dedicado só para monitoração.

backup
Backup cifrado

Rotina automática com destino externo, cifragem e retenção definida — mais o teste de restauração que transforma backup em garantia.

nfs
Compartilhamento de arquivos

Exportações NFS declaradas com liberação por endereço, para os casos em que várias máquinas precisam do mesmo volume.

monitor
Agentes de monitoração

Coletores de métrica e de log instalados junto com o servidor, para que nenhuma máquina entre em produção invisível. Ver observabilidade.

O mesmo módulo serve para todos os seus servidores

Nada aqui é escrito sob medida e descartado no fim do projeto. Cada bloco é parametrizado: a versão do banco, as portas liberadas, os usuários e os diretórios vêm de um arquivo de variáveis por servidor ou por grupo. Um cliente novo, um ambiente novo ou uma máquina a mais reaproveitam o mesmo código — que já foi testado em produção nos outros.

Segurança embutida

Quem entra no servidor, por onde e com qual permissão — tudo em código

Hardening não é uma etapa que acontece uma vez e envelhece: é parte do mesmo código que cria o servidor. Máquina nova já nasce com o padrão aplicado, e a máquina antiga é trazida para o padrão na próxima execução.

Acesso nominal Cada pessoa tem o seu usuário e a sua chave. Desligamento vira um commit: remove a chave, a próxima execução revoga o acesso em todos os servidores.
Só chave, nunca senha Autenticação por senha desativada no SSH, com a lista de quem pode entrar declarada explicitamente — o que corta de saída a maior parte das tentativas automatizadas.
Firewall versionado Toda porta aberta está num arquivo, com origem permitida. Serviço interno responde para a rede interna e para a VPN; a internet vê apenas o que precisa ver.
Sem senha no repositório As credenciais que o servidor precisa vêm do cofre no momento da execução. O repositório guarda a estrutura; o valor fica no cofre de segredos.
Um aviso sobre automação de firewall

Regra de firewall aplicada por automação pode cortar o seu próprio acesso — inclusive o do time — se for aplicada sem cuidado. Por isso mudanças nessa camada entram com validação prévia em ambiente de teste, janela combinada e um caminho de recuperação definido antes de rodar. É o tipo de detalhe que só aparece depois de alguns anos operando isso a sério.

Servidor à mão × servidor descrito em código

A diferença não aparece no dia em que o servidor sobe. Aparece no dia em que ele precisa mudar, crescer ou voltar do zero.

Situação Configurado à mão
acesso remoto e memória
Descrito em Ansible
código versionado
Subir servidor novo Horas ou dias, com passos esquecidos que aparecem depois Minutos, com o mesmo resultado do servidor anterior
Aplicar correção em 10 máquinas Dez vezes o mesmo trabalho, com risco de divergência entre elas Uma execução, com relatório do que mudou em cada uma
Saber a configuração atual Entrar no servidor e ler arquivo por arquivo Ler o repositório — que é a fonte da verdade
Descobrir quem mudou o quê Histórico de comandos, se ninguém tiver limpado Histórico do Git: autor, data, motivo e aprovação
Desfazer uma mudança ruim Depende de alguém lembrar o estado anterior Reverter o commit e reaplicar
Ambiente de homologação fiel Parecido, nunca idêntico Mesmo código, arquivo de variáveis diferente
Revogar o acesso de quem saiu Servidor por servidor, torcendo para não esquecer nenhum Um commit, aplicado em todo o parque
Perder o servidor por completo Reconstrução manual, com base no que a equipe lembrar Reconstrução a partir do código, com dados vindos do backup
Passar conhecimento para alguém novo Acompanhamento presencial e anotação solta O repositório mostra como o ambiente é, sem intermediário

O que entregamos

O resultado é um repositório que reconstrói o seu parque de servidores — e um time capaz de rodá-lo sem ajuda.

Inventário dos servidores

O que existe, o que roda em cada um, quem depende de quem — inclusive aquilo que ninguém lembrava que estava ligado.

Playbooks e módulos

Código organizado por função e por ambiente, com README explicando como aplicar cada parte com segurança.

Hardening padronizado

Acesso nominal, SSH sem senha, firewall fechado por padrão e atualizações de segurança com processo definido.

Aplicações em contêiner

Serviços empacotados em Docker, com arquivos de composição versionados e publicação repetível — sem cluster, se o seu caso não pedir.

Banco de dados operado

Instalação, ajuste de conexões, usuários criados por código, dump automático e usuário de monitoração separado.

Backup com restauração testada

Rotina cifrada com destino fora do servidor de origem e um teste real de retorno, com o tempo medido.

Ambiente de teste local

Máquinas virtuais descartáveis para validar mudanças antes de encostar em produção — o mesmo código, sem risco.

Monitoração instalada

Métricas de sistema e logs enviados desde o primeiro dia, com alerta para disco, memória e serviço fora do ar.

Runbooks operacionais

Procedimentos curtos para o dia a dia: adicionar servidor, liberar porta, conceder acesso, restaurar backup, aplicar atualização.

Como conduzimos

Começamos pelo servidor menos crítico e só depois avançamos — com produção intacta o tempo todo.

1
Levantamento

Mapeamento dos servidores, do que roda em cada um e dos riscos que pedem ação imediata.

2
Padrão definido

Base comum escrita e validada em máquina de teste: usuários, firewall, pacotes, monitoração, backup.

3
Adoção gradual

Servidores entram no padrão em ondas, do menos crítico ao mais crítico, com janela combinada.

4
Autonomia

Treinamento, runbooks e acompanhamento até a equipe rodar a automação sozinha com confiança.

Stack de configuração

Ferramentas abertas e amplamente adotadas, que qualquer profissional de infraestrutura consegue assumir depois.

Ansible Debian, Ubuntu, RHEL & derivados Docker & Docker Compose Docker Swarm PostgreSQL UFW / nftables NFS Kopia Vagrant HashiCorp Vault

Perguntas que sempre aparecem

O risco existe e é gerenciado assim: toda alteração é primeiro validada numa máquina virtual descartável, depois aplicada em modo de simulação (que mostra o que mudaria sem mudar nada) e só então executada de verdade, começando pelo servidor menos crítico. Mudanças em firewall e SSH — as que podem cortar o próprio acesso — têm cuidado extra e janela combinada.

Não. O normal é trazer o servidor existente para o padrão aos poucos, um bloco por vez. Reinstalar só entra em cena quando a máquina está em uma versão sem suporte, ou tão modificada ao longo dos anos que descrever o que ela virou custaria mais que recriá-la — e essa recomendação vem com a justificativa por escrito.

São camadas diferentes. O Ansible cuida do servidor — sistema, pacotes, usuários, firewall, Docker; o Kubernetes cuida da aplicação em cluster. Muitos ambientes que operamos usam só Ansible com Docker Compose e funcionam muito bem assim. Quando existe cluster, é o Ansible que prepara as máquinas onde ele roda.

O Ansible tem suporte a Windows, mas a nossa especialidade — e onde entregamos o melhor resultado — é Linux. Se o seu parque é majoritariamente Windows, dizemos isso na primeira conversa em vez de assumir um trabalho que outro fornecedor faria melhor. Ambientes mistos, com o Linux sob nossa responsabilidade, são um cenário comum e tranquilo.

No cofre de segredos, lidas no momento da execução. Nem no repositório, nem em arquivo cifrado que precise de mais uma senha compartilhada para abrir. É uma diferença importante do padrão que muita gente adota, e está detalhada em segurança & gestão de segredos.

Consegue, e é o objetivo. A curva de aprendizado do Ansible é curta — os arquivos são legíveis mesmo para quem nunca viu a ferramenta. Entregamos treinamento prático e runbooks das operações rotineiras; se preferir delegar a operação, existe o plano de sustentação mensal, mas ele é uma opção, não uma amarra.

Quantos dos seus servidores você conseguiria reconstruir amanhã?

O diagnóstico mapeia o parque atual e mostra o que dá para padronizar primeiro, com estimativa de esforço e sem compromisso.

Falar com um especialista