Heim  >  Artikel  >  Backend-Entwicklung  >  Verwalten Sie Cisco-Geräte mit Python

Verwalten Sie Cisco-Geräte mit Python

高洛峰
高洛峰Original
2016-10-18 10:47:462450Durchsuche

Ich habe ein kleines Framework gefunden, das von einem Ausländer geschrieben wurde, der Python zur Verwaltung von Cisco-Geräten verwendet und zum stapelweisen Ausführen von Befehlen verwendet werden kann.

Nach dem Herunterladen gibt es hauptsächlich 3 Dateien:

Systems.py definiert die Betriebssysteme einiger verschiedener Geräte und ihre allgemeinen Befehle.

Connectivity.py ist der Code, der hauptsächlich Funktionen implementiert. Tatsächlich verwendet es hauptsächlich das pexpect-Modul von Python.

Driver.py ist eine Beispieldatei.

[root@safe tratto-master]# cat drivers.py

#!/usr/bin/env python
import Connectivity
import Systems
#telnet to a cisco switch
m = Systems.OperatingSystems['IOS']
s = Connectivity.Session("192.168.1.1",23,"telnet",m)
s.login("yourusername", "yourpassword")
# if your need to issue an "enable" command
s.escalateprivileges('yourenablepassword')
s.sendcommand("show clock")
s.sendcommand("show run")
s.logout()

Das Obige ist der Inhalt des Beispiels drivers.py, das sehr einfach zu verwenden ist.

Wählen Sie zunächst eine Gerätesystemversion aus, in diesem Fall einen Cisco Switch, damit IOS verwendet wird. Die Gerätesysteme, die der Autor derzeit schreibt und die unterstützt werden können, sind:

OperatingSystems = {

'IOS': CiscoIOS,

'WebNS': CiscoWebNS,

'OSX': AppleOSX,

'SOS': SecureComputingSidewinder,

'AOS': ArubaOS,

'OBSD': OpenBSD,

}

Anschließend geben Sie IP, Port, Telnet oder SSH und schließlich die im vorherigen Schritt ausgewählte Systemversion ein. login Geben Sie die Anmeldeinformationen ein.

s.escalateprivileges sind privilegierte Anmeldeinformationen. so einfach~

Das Folgende ist ein Skript, das ich geschrieben habe, um einige Informationen über den Schalter abzurufen und sie dann in einer Datei zu speichern.

[root@safe tratto-master]# cat cisco.py

#!/usr/bin/env python
#
# Cisco Switch commands
# By s7eph4ni3
#
import Connectivity
import Systems
m = Systems.OperatingSystems['IOS']
iplist = ['192.168.1.1','192.168.1.2']
cmdlist = ['show ip int brief','show cdp nei detail','show arp','show ver']
for ip in iplist:
    if ip == '192.168.1.1':
        s = Connectivity.Session(ip,23,"telnet",m)
        s.login("", "passwd")
    else:
        s = Connectivity.Session(ip,22,"ssh",m)
        s.login("username", "passwd")
    s.escalateprivileges('enpasswd')
    f = open(ip+'.txt','w+')
    for cmd in cmdlist:
        a = s.sendcommand(cmd)
        f.write(ip+cmd+'\n')
        f.write(a+'\n')
    f.close()
    s.logout()


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn