Cómo hice un bot de Telegram para trabajar con la red

¡Buenas tardes! imagenCompartiré contigo una experiencia interesante en la creación de una herramienta móvil para trabajar con la red.



Prólogo



He trabajado durante varios años en proveedores, desde pequeños hasta federales. Cuando llegué a "Federal" me enfrenté a mucha rutina y había un deseo de automatizar ese proceso tan rutinario.



Año 2013. Tengo un amigo que también trabajaba en uno de los "federales", conectando clientes y hubo una historia cuando me dio un teléfono y se subió al ático para hacer algo con el interruptor. Me paré en la parte inferior con un teléfono en el que se abrió una página web con varios guiones interesantes. Estos scripts realizaban la verificación del puerto en el conmutador, la eliminación de errores y otras cosas.



Es decir, el ingeniero, habiendo llegado a la dirección, no molestó al administrador por tonterías, porque él mismo tenía una herramienta para trabajar con la red.



Es junio de 2018 y me atormentaron los pensamientos de "¿Por qué no escribir un bot que verifique equipos de diferentes niveles (núcleo, agregación, acceso)?" El problema era que solo yo quería deshacerme de la rutina, el resto vivía para hoy.



Elegir un lenguaje de programación y una plataforma



Chicos, por supuesto Python . En el momento de las ideas, ya tenía algunas habilidades y un poco de experiencia en la creación de guiones. La plataforma fue elegida como amigable - Telegram porque todos los informáticos viven allí.



Elección de bibliotecas para escribir un bot



1. Biblioteca para trabajar con Telegram. pyTelegramBotAPI se estaba desvaneciendo, especialmente durante el tiempo de bloqueo, quería hacer amigos rápidamente con proxies y otras cosas. Elegí python-telegram-bot y tomé Conversation como base .



2. Biblioteca para trabajar con equipos. Debido a la simplicidad del trabajo, mi elección recayó en - python3-netsnmp .

Se han sentado las bases, es hora de escribir.



Condujo



La red era un zoológico de hierro y tuvimos que tomar un proveedor aparte y trabajar con él. Otra condición importante fue la presencia de MIB para realizar tareas.



Una de las tareas era comprobar la longitud del cable y el estado de los pares, comprobar el estado de los puertos y la presencia de errores en los puertos.



Ahora muchos escribirán diciendo: "Bueno, ¿qué no se podría hacer sin SNMP?" Mi respuesta es que: "Sí, no puede, si desea capturar datos de una manera humana normal, entonces solo SNMP".

Ahora alguien ya quema un lugar y escribe que solo NETCONF.



Habiendo pasado el equipo de acceso e implementado el trabajo con él en el bot, me encontré con el hecho de que a veces, efectivamente, para tareas específicas, que el protocolo SNMP no resuelve, tengo que ir al equipo.



La biblioteca netmiko vino a mi rescate- y todavía estoy feliz con ella. Resolvió muchos problemas que ni siquiera estaban relacionados con el bot. La cantidad de equipo soportado es solo fuego.



También encontré la biblioteca ipaddress muy útil para verificar direcciones IP. En



imagen



imagen



imagen



general, al programar, tomé en cuenta muchos matices, desde autorizar a un usuario en un bot hasta otorgarle varios derechos.



La funcionalidad creció



Sí, la funcionalidad creció y con ella creció el soporte para ciertos equipos. He agregado equipos de acceso por radio, receptores ópticos de KTV.



De alguna manera la gente vino a mí y me dijo que pondríamos intercomunicadores. Entiendo con la cabeza que el escenario también recaerá sobre mis hombros y sobre los hombros de los compañeros.



Empecé a sentir, mirar. Leí la API, que estaba bien allí. Elegí la biblioteca más simple para trabajar con HTTP y HTTPS: solicitudes .

Habiendo trabajado ya con intercomunicadores, había necesidad de una base de datos, pero como de costumbre, la ópera perezosa * no quería esforzarse demasiado. Por lo tanto, la elección recayó en sqlite3. La biblioteca también se eligió lo más simple posible: es un conjunto de datos .



Las nubes se están acumulando



En algún momento, el trabajo se volvió increíblemente mucho y mi creación, de hecho, vivió por sí sola. Hay mucho trabajo, poco dinero, bueno, creo que recoges la nota. Decidí dejar este establecimiento. Habiendo trabajado durante varios años en el gobierno federal, he mejorado mi habilidad para trabajar con un lenguaje de programación. Estoy muy satisfecho con esto.



Epílogo



Quizás esta sea una gran historia o no haya llegado a su fin. Networker en mi opinión sin programar en ningún lado, sobre todo con un zoo de hierro. Como resultado, el parque de equipos admitidos fue el siguiente:

- 23 modelos de conmutadores de acceso

- 3 modelos de receptores ópticos KTV

- 4 modelos de conmutadores de chasis

- 1 modelo de enrutador de chasis

- 3 modelos de equipos de acceso por radio



All Articles