Conjunto de testes automatizado para servidores Linux e dispositivos de rede?

2

Vindo de um plano de desenvolvimento, estou acostumado a testes automatizados (unitários) antes que o material seja transmitido. Agora, eu gostaria de usar a mesma abordagem para servidores (novos) do Linux (e algumas janelas) e dispositivos de rede.

Eu quero ser capaz de definir testes / condições que esses sistemas devem passar antes que eles possam ir ao ar, ou executar os testes contra hosts ao vivo para verificar se eles ainda estão em conformidade com nossos padrões.

Testes que gostaria de executar para ir além da digitalização de redes. Por exemplo:

  • Desejo verificar se o SSH está habilitado, mas nenhum logon de raiz é permitido e logins baseados em chave são aplicados.
  • Em uma impressora, quero verificar se determinadas comunidades SNMP estão definidas.
  • Em um host linux eu gostaria de verificar as configurações do ntp
  • Eu gostaria de poder definir a verificação personalizada em alguns casos específicos

Você sabe se existe tal sistema automatizado, qual deles atenderia melhor aos meus requisitos? Ou devo construir em um framework de teste unitário existente?

    
por Erwin Vrolijk 13.07.2012 / 09:04

2 respostas

3

É para isso que você usa o monitoramento. Há uma abundância de sistemas de monitoramento, com diferentes aspectos positivos e negativos, e este não é o lugar para uma discussão exaustiva das diferentes opções. Seu monitoramento deve, em princípio, representar todas as afirmações que você faz sobre o seu sistema, tanto em termos de saídas como de tempos de resposta. Encorajo o uso de "administração de sistemas de primeiro monitoramento" em minha equipe, e os paralelos com o desenvolvimento devem ser óbvios.

Agora, assim como algumas coisas são difíceis de testar na unidade, há também algumas coisas que são difíceis de monitorar. Seu exemplo SSH é um deles - enquanto você certamente pode tentar fazer o login, e se isso falhar, então diga que está pronto, mas muitas coisas podem confundir seu teste - "tente logar como root com uma senha falha" pode ser enganado por alguém alterando a senha root para test123 e ativando a senha - você não sabe qual foi a senha definida, então é claro que o seu login de teste irá falhar.

Para as coisas , você quer um sistema de gerenciamento de configuração, como Chef ou Puppet. Esses sistemas permitem que você faça afirmações sobre o estado de um sistema (como "A opção PasswordAuthentication em /etc/ssh/sshd_config deve ser definida como false "), e o sistema de gerenciamento de configuração garantirá que esse seja o caso sempre que corre. Bons sistemas também podem fornecer relatórios de exceção ("ei, eu achei que você gostaria de saber que PasswordAuthentication foi definido como true ; tudo bem, eu consertei, mas você pode querer quebrar os dedos de alguém") você pode saber quando algo estranho acontece .

    
por 13.07.2012 / 11:31
0

Você pode usar Serverspec . É principalmente útil para testes que são executados no host de destino - por exemplo. verificação de existência / conteúdo de arquivos, pacotes instalados, portas de servidor usadas.

    
por 27.03.2016 / 18:30