Vou compartilhar com vocês uma experiência interessante na criação de uma ferramenta móvel para trabalhar com a rede.
Prefácio
Trabalhei vários anos em provedores, de pequeno a federal. Quando vim para o "Federal", enfrentei muita rotina e havia um desejo de automatizar esse processo rotineiro.
ano 2013. Tenho um amigo que também trabalhava em um dos “federais”, conectando clientes e teve uma história quando ele me deu um telefone e subiu no sótão para fazer alguma coisa com o switch. Eu estava na parte inferior com um telefone no qual uma página da web com vários scripts interessantes foi aberta. Esses scripts executaram a verificação da porta no switch, limpando erros e outras coisas.
Ou seja, o engenheiro, tendo chegado ao endereço, não incomodou o administrador com bobagens, pois ele próprio tinha uma ferramenta para trabalhar com a rede.
É junho de 2018 e eu estava atormentado com o pensamento: "Por que não escrever um bot que verificaria equipamentos de diferentes níveis (núcleo, agregação, acesso)?" O problema é que só eu queria me livrar da rotina, o resto vivia por hoje.
Escolha de uma linguagem de programação e plataforma
Pessoal, claro Python . Na época das ideias, eu já tinha algumas habilidades e um pouco de experiência em scripting. A plataforma foi escolhida como amigável - Telegram porque todos os schnicks de TI moram lá.
Escolhendo bibliotecas para escrever um bot
1. Biblioteca para trabalhar com o Telegram. pyTelegramBotAPI estava desaparecendo, especialmente durante o tempo de bloqueio, eu queria fazer amizade com proxies e outras coisas rapidamente. Eu escolhi python-telegram-bot e usei a Conversação como base .
2. Biblioteca para trabalhar com equipamentos. Devido à simplicidade do trabalho, minha escolha recaiu sobre - python3-netsnmp .
A base foi lançada, é hora de escrever.
Dirigiu
A rede era um zoológico de ferro e tínhamos que pegar um fornecedor separado e trabalhar com ele. Outra condição importante era a presença de MIBs para a realização de tarefas.
Uma das tarefas era verificar o comprimento do cabo e o status dos pares, verificar o status das portas e a presença de erros nas portas.
Agora muitos vão escrever dizendo - "Bem, o que não poderia ser feito sem SNMP?" Minha resposta é: "Sim, você não pode, se quiser capturar dados de uma forma humana normal - então apenas SNMP."
Agora alguém já está queimando um lugar e ele escreve que só NETCONF.
Tendo passado o equipamento de acesso e implementado trabalho com ele no bot, me deparei com o fato de que às vezes, sim, para tarefas específicas, que o protocolo SNMP não resolve, tenho que ir até o equipamento.
A biblioteca netmiko veio em meu socorro- e ainda estou satisfeito com ela. Ela resolveu muitos problemas nem mesmo relacionados ao bot. A quantidade de equipamentos suportados é apenas fogo.
Também achei a biblioteca ipaddress muito útil para verificar endereços IP. Em
geral, ao programar, levei em consideração muitas nuances, desde autorizar um usuário em um bot até dar a ele vários direitos.
A funcionalidade cresceu
Sim, a funcionalidade cresceu e, com isso, o suporte para determinados equipamentos cresceu. Eu adicionei equipamento de acesso de rádio, receptores ópticos KTV.
De alguma forma, as pessoas vieram até mim e disseram que colocaríamos interfones. Eu entendo com a minha cabeça que o cenário também cairá sobre os meus ombros e os ombros dos colegas.
Comecei a sentir, olhe. Eu li a API, que era boa lá. Eu escolhi a biblioteca mais simples para trabalhar com solicitações HTTP e HTTPS .
Tendo já trabalhado com interfones, havia necessidade de um banco de dados, mas como sempre a ópera preguiçosa não queria se esforçar muito. Portanto, a escolha recaiu sobre sqlite3. A biblioteca também foi escolhida o mais simples possível - é um conjunto de dados .
As nuvens estão se adensando
Em algum momento, o trabalho tornou-se insanamente grande e minha criação, na verdade, viveu por conta própria. Há muito trabalho, pouco dinheiro - bem, acho que você pegou a nota. Decidi deixar este estabelecimento. Tendo trabalhado por vários anos no governo federal, melhorei minha habilidade de trabalhar com uma linguagem de programação. Fiquei muito satisfeito com isso.
Epílogo
Talvez esta seja uma grande história ou uma história não tenha chegado ao fim. Networker na minha opinião sem programar em lugar nenhum, principalmente com um zoológico de ferro. Como resultado, o parque de equipamentos suportados foi o seguinte:
- 23 modelos de switches de acesso
- 3 modelos de receptores ópticos KTV
- 4 modelos de switches de chassis
- 1 modelo de roteador de chassis
- 3 modelos de equipamentos de acesso rádio