Além do que você listou,
Eu também recomendo as seguintes verificações para incluir no mínimo:
- Lista de portas abertas: certifique-se de que apenas as portas necessárias estejam abertas e nada mais
- A lista de pacotes instalados deve corresponder à sua lista predefinida, sem extras
- A lista de contas de usuários deve corresponder à sua lista predefinida, sem extras
- Lista de grupos e seus membros devem corresponder à sua lista predefinida, sem extras
Are there examples of a better approach, such as setting expected values or ranges in the checks then simply run 'all' tests for pass/fail checking?
Algumas das verificações podem precisar de uma definição de taxa de falhas aceitável.
Por exemplo, ao verificar o espaço em disco disponível,
muito provavelmente os valores não serão exatamente os mesmos em todos os servidores,
portanto, seu cheque precisará de um limite de nível aceitável.
Da mesma forma, alguns pings perdidos podem ser aceitáveis,
então, em vez de exigir 100% de pings devolvidos,
uma validação para > 95% pode ser mais prático.
Por outro lado, para algumas coisas você deve ter tolerância zero,
como a lista de portas abertas.
Com 300 servidores para verificar, os métodos baseados em papel não funcionarão.
Quando você terminar de verificar todas as máquinas,
alguns podem já ter falhado em silêncio.
Então sim, você tem que roteirizar.
Não deve ser muito difícil juntar tudo.
Crie algo que funcione um pouco e, se você ficar preso, pergunte no UNIX SE ou Estouro de pilha para ajuda.
Quando você tiver algo em pleno funcionamento, poderá solicitar a Revisão de código para otimização e limpeza adicionais.
Definitivamente, vale a pena investir em scripts,
para que você possa executar novamente os testes com facilidade para verificar a integridade do seu farm de servidores.