Wie ich einen Telegramm-Bot für die Arbeit mit dem Netzwerk erstellt habe

Guten Tag! BildIch werde mit Ihnen eine interessante Erfahrung bei der Erstellung eines mobilen Tools für die Arbeit mit dem Netzwerk teilen.



Vorwort



Ich habe mehrere Jahre bei Anbietern gearbeitet, von klein bis bundesweit. Als ich zu "Federal" kam, war ich mit viel Routine konfrontiert, und es bestand der Wunsch, diesen Routineprozess zu automatisieren.



Jahr 2013. Ich habe einen Freund, der auch in einem der "Föderalen" gearbeitet hat, um Kunden zu verbinden, und es gab eine Geschichte, als er mir ein Telefon gab und auf den Dachboden kletterte, um etwas mit dem Schalter zu tun. Ich stand unten mit einem Telefon, auf dem eine Webseite mit verschiedenen interessanten Skripten geöffnet wurde. Diese Skripte überprüften den Port des Switches, löschten Fehler und andere Dinge.



Das heißt, der Ingenieur, der an die Adresse gekommen war, störte den Administrator nicht wegen Unsinns, weil Er selbst hatte ein Werkzeug für die Arbeit mit dem Netzwerk.



Es ist Juni 2018 und ich wurde mit dem Gedanken gequält: "Warum nicht einen Bot schreiben, der Geräte auf verschiedenen Ebenen (Kern, Aggregation, Zugriff) überprüft?" Das Problem war, dass nur ich die Routine loswerden wollte, der Rest lebte für heute.



Auswahl einer Programmiersprache und Plattform



Leute, natürlich Python . Zum Zeitpunkt der Ideen hatte ich bereits einige Fähigkeiten und wenig Erfahrung in der Skripterstellung. Die Plattform wurde als freundliche Plattform gewählt - Telegramm weil Dort leben alle IT-Schnicks.



Auswählen von Bibliotheken zum Schreiben eines Bots



1. Bibliothek zum Arbeiten mit Telegramm. pyTelegramBotAPI verblasste, besonders während der Zeit des Blockierens. Ich wollte mich schnell mit Proxies und anderen Dingen anfreunden. Ich entschied mich für Python-Telegramm-Bot und nahm Conversation als Grundlage .



2. Bibliothek für die Arbeit mit Geräten. Aufgrund der Einfachheit der Arbeit fiel meine Wahl auf - python3-netsnmp .

Der Grundstein wurde gelegt, es ist Zeit zu schreiben.



Gefahren



Das Netzwerk war ein eiserner Zoo, und wir mussten einen separaten Anbieter nehmen und damit arbeiten. Eine weitere wichtige Bedingung war das Vorhandensein von MIBs zur Ausführung von Aufgaben.



Eine der Aufgaben bestand darin, die Kabellänge und den Status der Paare, den Status der Ports und das Vorhandensein von Fehlern an den Ports zu überprüfen.



Jetzt werden viele schreiben und sagen: "Nun, was wäre ohne SNMP nicht möglich?" Meine Antwort lautet: "Ja, Sie können nicht, wenn Sie Daten auf normale menschliche Weise erfassen möchten - dann nur SNMP."

Jetzt brennt schon jemand einen Platz und er schreibt das nur NETCONF.



Nachdem ich die Zugangsausrüstung übergeben und die Arbeit damit im Bot implementiert hatte, sah ich mich mit der Tatsache konfrontiert, dass ich manchmal tatsächlich für bestimmte Aufgaben, die das SNMP-Protokoll nicht löst, zur Ausrüstung gehen muss.



Die Netmiko- Bibliothek kam mir zu Hilfe- und ich bin immer noch zufrieden mit ihr. Sie löste viele Probleme, die nicht einmal mit dem Bot zu tun hatten. Die Menge der unterstützten Ausrüstung ist nur Feuer.



Ich fand die IP- Adressbibliothek auch sehr nützlich, um IP-Adressen zu überprüfen. Im



Bild



Bild



Bild



Allgemeinen habe ich bei der Programmierung viele Nuancen berücksichtigt, von der Autorisierung eines Benutzers in einem Bot bis zur Vergabe verschiedener Rechte.



Die Funktionalität wuchs



Ja, die Funktionalität wuchs und mit ihr wuchs die Unterstützung für bestimmte Geräte. Ich habe Funkzugangsgeräte und optische KTV-Empfänger hinzugefügt.



Irgendwie kamen Leute zu mir und sagten, dass wir Gegensprechanlagen aufsetzen werden. Ich verstehe mit meinem Kopf, dass die Einstellung auch auf meine Schultern und die Schultern von Kollegen fallen wird.



Ich begann zu fühlen, zu schauen. Ich habe die API gelesen, die dort gut war. Ich habe die einfachste Bibliothek für die Arbeit mit HTTP- und HTTPS- Anfragen ausgewählt .

Nachdem bereits mit Gegensprechanlagen gearbeitet worden war, wurde eine Datenbank benötigt, aber wie üblich wollte die Lazy * -Oper nicht zu viel anstrengen. Daher fiel die Wahl auf sqlite3. Die Bibliothek wurde ebenfalls so einfach wie möglich ausgewählt - es handelt sich um einen Datensatz .



Die Wolken ziehen auf.



Irgendwann wurde die Arbeit wahnsinnig viel und meine Idee lebte tatsächlich von alleine. Es gibt viel Arbeit, wenig Geld - nun, ich denke, Sie nehmen die Notiz auf. Ich beschloss, dieses Haus zu verlassen. Nachdem ich mehrere Jahre in der Bundesregierung gearbeitet habe, habe ich meine Fähigkeiten im Umgang mit einer Programmiersprache verbessert. Ich war sehr zufrieden damit.



Epilog



Vielleicht ist dies entweder eine große oder nicht sehr eine Geschichte, die zu Ende gegangen ist. Networker meiner Meinung nach ohne irgendwo zu programmieren, besonders mit einem eisernen Zoo. Infolgedessen war die Flotte der unterstützten Geräte wie folgt:

- 23 Modelle von Zugangsschaltern

- 3 Modelle von optischen KTV-Empfängern

- 4 Modelle von Gehäuseschaltern

- 1 Modell eines Gehäuserouters

- 3 Modelle von Funkzugangsgeräten



All Articles