Criados iguais, envelhecidos diferentes
Dez servidores criados com o mesmo código nascem idênticos. Seis meses depois já não o são: num instalou-se uma ferramenta para diagnosticar um problema, outro não recebeu o último patch, num terceiro alguém criou um utilizador temporário que nunca foi apagado.
A infraestrutura como código resolve como nasce um servidor. O que acontece durante a sua vida precisa de outra ferramenta: a gestão de configuração, guiada por uma linha de base.
O que é uma linha de base
Uma linha de base é a descrição escrita de como deve estar configurado um tipo de servidor:
- Sistema e patches: versão e nível de atualização esperados.
- Pacotes: o que deve estar instalado e o que não.
- Utilizadores e acessos: quem pode entrar e como (por exemplo, só com chave, nunca com palavra-passe).
- Serviços: o que deve estar em marcha e o que deve estar desligado.
- Endurecimento: ajustes de segurança do sistema.
- Registo e monitorização: que envie os seus registos e métricas para onde deve.
Aplicar e verificar, não só aplicar
A linha de base usa-se de duas formas:
- Para aplicar: uma ferramenta leva cada servidor à configuração descrita, de forma repetível (como em declarar, não ordenar).
- Para verificar: com regularidade, a mesma ferramenta revê cada servidor sem mudar nada e gera um relatório com o que cumpre e o que não.
Esse relatório periódico, datado e guardado, é muito valioso: mostra a evolução de cada servidor, serve de prova numa auditoria e permite ver num relance que máquinas precisam de atenção.
Uma linha de base por tipo, não por máquina
Não se escreve uma linha de base para cada servidor, mas para cada tipo: servidor web, servidor de base de dados, posto de trabalho de administração. Cada máquina declara o seu tipo e herda a sua linha de base.
Verificar regularmente cada servidor face à sua linha de base leva à pergunta mais ampla: o que fazer quando a realidade se afasta do código?
Como o aplicamos: Automação e IaC.