[PYTHON] Ich habe ein Router-Konfigurationssammlungstool Config Collecor erstellt

Überblick

Ich habe das zuvor veröffentlichte Tool zur Erfassung der Routerkonfiguration geändert und auf PyPI veröffentlicht. [Tool zum zentralen Erfassen der Konfiguration des Cisco / Juniper-Routers] (http://qiita.com/taijijiji/items/620908c1bec27e1ea933)

https://pypi.python.org/pypi/ConfigCollector https://github.com/taijiji/ConfigCollector

Es hat eine Weile gedauert, weil es meine erste PyPI-Registrierung war, aber ich habe mein PyPI-Debüt geschafft.

Motivation

Ich wollte die Routerkonfiguration mit Git verwalten, aber vor Git war es schwierig, die Konfiguration der in Betrieb befindlichen Routergruppe zu erfassen. Daher habe ich einen Konfigurationskollektor erstellt, der die Konfiguration aller Router mit einem Befehl erfassen kann. Ich tat.

Ich habe darüber nachgedacht, es einschließlich des Git-Befehls zu automatisieren, aber "Wenn Sie konfilieren, sollten Sie es manuell auswählen." "Wenn Sie die Routerkonfiguration, bei der es sich um vertrauliche Informationen handelt, zwangsweise hochladen, können Probleme auftreten, wenn Sie einen Fehler machen." Das Ziel dieses Tools ist "SSH-Anmeldung bei mehreren Routern", da es schwierig war, optionale Funktionen wie "git remove" zum Zeitpunkt des Fehlers zu implementieren (ich bin nicht sicher, ob die problematische Implementierung erforderlich ist). Holen Sie sich config ・ Beschränkt auf "Sammeln".

Installation

Durch Veröffentlichung auf PyPI kann es mit dem Befehl pip installiert werden.

pip install configcolletctor

Wenn Sie pip noch nie verwendet haben, installieren Sie pip bitte anhand dieses Artikels. [Die ersten Pakete, die in Python setuptools und pip enthalten sind] (http://www.lifewithpython.com/2012/11/Python-package-setuptools-pip.html)

Wie benutzt man

Führen Sie das Tool nach der Installation auf diese Weise aus.

configcollector -i [inventory_file] -o [output_dirctory]
[
    {
        "hostname" : "router1",
        "username" : "user1",
        "password" : "aaabbbccc",
        "ipv4"     : "192.168.0.1",
        "os"       : "JUNOS"
    },
    {
        "hostname" : "router2",
        "username" : "user2",
        "password" : "aaabbbccc",
        "ipv4"     : "192.168.0.2",
        "os"       : "IOS-XR"
    },
    {
        "hostname" : "router3",
        "username" : "user3",
        "password" : "aaabbbccc",
        "ipv4"     : "192.168.0.3",
        "os"       : "IOS"
    }
]

Anwendungsbeispiel

Verwenden Sie ConfigCollector wie folgt.

Erstellen Sie zunächst ein Ausgabezielverzeichnis, in dem die Routerkonfiguration gespeichert wird.

    % mkdir router_config

Führen Sie ConfigCollector aus

    % configcollector -i sample_routers.json -o router_config/

    Accessing router: router1...
    Writing output file "router_config/router1"...
    Success : "router_config/router1"!
    Accessing router: router2...
    Writing output file "router_config/router2"...
    Success : "router_config/router2"!
    Accessing router: router3...
    Writing output file "router_config/router3"...
    Success : "router_config/router3"!

Überprüfen Sie die erstellte Datei.

    % ls router_config
    router1.txt  router2.txt  router3.txt
    % less router1.txt

    show configuration | no-more
    ## Last commit: 2015-05-01 17:00:00 JST by user1
    version x.x.x;
    system {
        host-name router1;
        time-zone Asia/Tokyo;
    (snip)

das ist alles.

Git-Verwaltung der Routerkonfiguration mit diesem Tool

Sie können die von diesem Tool erfasste Routerkonfiguration wie folgt verwalten.

  1. Erstellen Sie ein Repository für die Routerkonfiguration mithilfe des Git-Verwaltungsservers
  2. Holen Sie sich die Router-Konfiguration
 % configcollector -i sample_routers.json -o router_config/
  1. Zum Git-Staging hinzugefügt (als Update-Kandidat festgelegt)
 % git add router_config/ . 

4.git commit (Update durchführen)

 % git commit 
  1. Hochladen auf Git Remote Repository (Hochladen auf Git Management Server)
 % git push
 (Nur zum ersten Mal% git push origin master)
  1. Wenden Sie sich an den Git-Verwaltungsserver

Impressionen

Ich habe mich zum ersten Mal in meinem Leben für PyPI registriert. Ich bin froh, dass ich zum ersten Mal in die Reihen der anständigen OSS-Kommissare aufgenommen werden konnte. Es gibt viele Stellen, an denen ich noch nicht weiß, wie man PyPI und OSS verwendet. Ich wäre Ihnen dankbar, wenn Sie mir ein Feedback geben könnten. https://pypi.python.org/pypi/ConfigCollector https://github.com/taijiji/ConfigCollector

Recommended Posts

Ich habe ein Router-Konfigurationssammlungstool Config Collecor erstellt
Ich habe ein automatisches Stempelwerkzeug für den Browser erstellt.
〇✕ Ich habe ein Spiel gemacht
Ich habe ein nützliches Tool für Digital Ocean erstellt
Ich habe ein Tool erstellt, um Hy nativ zu kompilieren
Ich habe mit Diamond gespielt, einem Tool zum Sammeln von Metriken
Ich habe ein Tool erstellt, um neue Artikel zu erhalten
Lassen Sie uns Chat-Benutzerverwaltungstool gemacht
Ich habe ein Tool zur Erzeugung sich wiederholender Textdaten "rpttxt" erstellt.
Ich habe einen Python-Text gemacht
Ich habe einen Zwietrachtbot gemacht
Ich habe ein Tool erstellt, um eine Wortwolke aus Wikipedia zu erstellen
[Titan Craft] Ich habe ein Werkzeug gemacht, um einen Riesen nach Minecraft zu rufen
Ich habe eine C ++ - Lernseite erstellt
Ich habe einen Line-Bot mit Python gemacht!
Ich habe ein CUI-basiertes Übersetzungsskript erstellt (2)
Ich habe mit Python eine Lotterie gemacht.
Ich habe ein CUI-basiertes Übersetzungsskript erstellt
Tool zum Konvertieren der Juniper-Konfiguration
Ich habe mit Python einen Daemon erstellt
Ich habe eine Bibliothek erstellt, die Konfigurationsdateien mit Python einfach lesen kann
Erstelltes WebSocket Client / Server-CLI-Tool (wie WebSocket Version Netcat)
Ich habe versucht, ein Gerüstwerkzeug für Python Web Framework Bottle zu erstellen
[Kaggle] Ich habe mit dem Titanic-Tutorial eine Sammlung von Problemen erstellt
Ich habe einen neuen AWS S3-Eimer hergestellt
Ich habe ein Dash-Docset für Holoviews erstellt
Ich habe ein Tool zum automatischen Durchsuchen mehrerer Websites mit Selenium (Python) erstellt.
Ich habe ein Pay-Management-Programm in Python erstellt!
Ich berührte "Orator" und machte mir eine Notiz
Ich habe mit Python einen Zeichenzähler erstellt
Anfänger: Ich habe einen Launcher mit dem Wörterbuch erstellt
Ich habe ein CLI-Tool erstellt, um Bilder in jedem Verzeichnis in PDF zu konvertieren
Ich habe eine Art einfaches Bildverarbeitungswerkzeug in der Sprache Go erstellt.
Ich habe einen Gesprächspartner wie Siri gemacht
Ich habe ein Skript erstellt, um Piktogramme anzuzeigen
Ich habe mit Python eine Hex-Map erstellt
Ich habe ein Tool erstellt, um Jupyter py mit VS Code in ipynb zu konvertieren
Ich habe ein Lebensspiel mit Numpy gemacht
Ich habe ein Tool erstellt, das die Dekomprimierung mit CLI (Python3) etwas erleichtert.
Ich habe einen Hanko-Generator mit GAN gemacht
Nachdem ich Python3 studiert hatte, machte ich einen Slackbot
Ich habe ein Passwort-Tool in Python erstellt.
Ich habe mit Python ein schurkenhaftes Spiel gemacht
Ich habe mit Python einen einfachen Blackjack gemacht
Ich habe mit Python eine Einstellungsdatei erstellt
Ich habe eine Bibliothek für versicherungsmathematische Versicherungen erstellt
Ich habe eine WEB-Bewerbung bei Django gemacht
Ich habe mit Python einen Neuronensimulator erstellt
Ich habe ein Tool erstellt, um die Ausführungszeit von cron zu schätzen (+ PyPI-Debüt)
Ich habe ein Tool erstellt, um Slack über Connpass-Ereignisse zu informieren, und es zu Terraform gemacht
Ich habe gerade ein Tool erstellt, mit dem Daten mithilfe der GUI-Operation einfach als Diagramm angezeigt werden können
Ich habe ein Tool zum Generieren von Markdown aus der exportierten Scrapbox-JSON-Datei erstellt
Ich habe ein Tool zum automatischen Sichern der Metadaten der Salesforce-Organisation erstellt
Ich habe einen Stempelersatzbot mit Linie gemacht
Ich habe eine Python-Wörterbuchdatei für Neocomplete erstellt
Ich habe mit Python eine Bot-Wettervorhersage gemacht.
Ich habe einen Ersatz2-Algorithmus für uWSGI billiger gemacht
Ich habe eine GUI-App mit Python + PyQt5 erstellt
Ich habe versucht, mit Python einen Twitter-Blocker für faule Mädchen zu machen
Ich habe ein verrücktes Ding namens getipptes Tupel gemacht
[Python] Ich habe mit Tkinter einen Youtube Downloader erstellt.