Melhor maneira de fazer a validação do sistema e do ambiente [linux]?

5

Existe uma maneira melhor de validar o ambiente? O Usecase é um ambiente virtualizado próximo a 300 servidores criados por outra pessoa e precisa ser validado antes de aceitá-los (por exemplo, antes de instalar um software personalizado e encontrar problemas após o fato).

Tudo isso é feito manualmente com uma lista de verificação em papel

  • ssh para um servidor linux [é assim que os testes a seguir são executados a partir da caixa]
  • para cada servidor com o qual se comunica:
    • ping -c 20 X servidores de destino que o servidor linux deve comunicar, revise a perda de pacotes e o RTT avg / max / deviation
    • servidores de destino telnet para garantir que as portas apropriadas estejam abertas e acessíveis para os serviços que oferecem (por exemplo, 1433 sql server, 3306 mysql, 80 webservice, 25 smtp)
  • nslookup para garantir que o servidor esteja configurado no DNS.

Existe uma maneira melhor de validar o sistema?

Tudo isso é feito manualmente com uma lista de verificação em papel

  • ssh para o servidor linux
  • cat /proc/cpuinfo para revisar se a contagem do núcleo da CPU e a velocidade do clock foram solicitadas
  • df para verificar o espaço em disco alocado
  • free -m para verificar o valor da memória

Existem exemplos de uma abordagem melhor, como a configuração de valores esperados ou intervalos nas verificações, em seguida, basta executar 'todos' os testes para verificação de aprovação / reprovação?

    
por dhartford 17.12.2014 / 15:09

4 respostas

2

Vários anos depois, mas a resposta que eu estava procurando foi encontrada em:

link

gather_facts: true

Como o ansible é nativamente sem agente via ssh, isso já resolveu a necessidade de acesso ssh.

O recurso gather_facts já recebeu muitos dos dados necessários do sistema de destino, apenas uma questão de avaliação (exemplo de espaço em disco: link ).

Eu não avaliei ansible para os requisitos de rede / firewall do sistema de destino, mas parece muito factível!

    
por 04.06.2018 / 15:38
2

Resposta curta: faça o script.

Resposta mais longa: todos os testes mencionados acima podem ser automatizados por meio de ferramentas simples do sistema operacional. Como exemplo, o comando ping pode ser executado e, em seguida, o código de retorno é verificado e usado para determinar o status de aprovação / reprovação. Levará um pouco mais de tempo para criar o script, mas economizará um tempo significativo percorrendo todas as 300 máquinas para serem testadas.

    
por 17.12.2014 / 15:15
2

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.

    
por 26.12.2014 / 17:43
1

Se você tiver acesso a um servidor linux, eu tentaria usar o nmap para varrer a rede, ele poderia informar a você quais servidores estão respondendo e quais serviços estão sendo executados neles. Lembre-se de que essa verificação pode causar alguns possíveis problemas (dependendo dos serviços em execução nos servidores que você está verificando) e deve obter o consentimento dos proprietários dos servidores antes de executá-los.

    
por 22.12.2014 / 22:02

Tags