>  기사  >  백엔드 개발  >  Python을 사용하여 Cisco 장치 관리

Python을 사용하여 Cisco 장치 관리

高洛峰
高洛峰원래의
2016-10-18 10:47:462451검색

시스코 장비를 관리하기 위해 외국인이 파이썬을 사용해 작성한 작은 프레임워크 트라토를 발견했는데, 이를 통해 일괄적으로 명령을 실행할 수 있습니다.

다운로드하면 주로 3개의 파일이 있습니다.

Systems.py는 다양한 장치의 운영 체제와 공통 명령을 정의합니다.

Connectivity.py는 주로 함수를 구현하는 코드입니다. 실제로는 Python의 pexpect 모듈을 주로 사용합니다.

Driver.py는 샘플 파일입니다.

[root@safe tratto-master]# catdriver.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()

위는 사용하기 매우 간단한 드라이버.py 예제의 내용입니다.

먼저 장치 시스템 버전을 선택하세요. 이 경우 Cisco 스위치이므로 IOS가 사용됩니다. 작성자가 현재 작성하고 있는 지원 가능한 장치 시스템은 다음과 같습니다.

OperatingSystems = {

'IOS': CiscoIOS,

'WebNS': CiscoWebNS,

'OSX': AppleOSX,

'SOS': SecureComputingSidewinder,

'AOS': ArubaOS,

'OBSD': OpenBSD,

}

그런 다음 IP, 포트, 텔넷 또는 SSH를 입력하고 마지막으로 이전 단계에서 선택한 시스템 버전을 입력하세요. 로그인 로그인 자격 증명을 입력하세요.

s.escalateprivileges는 권한 있는 자격 증명입니다. 너무 쉬워요~

다음은 스위치에 대한 정보를 일부 가져와서 파일로 저장하기 위해 작성한 스크립트입니다.

[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()


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.