1. 程式人生 > >Python 通過telnet 配置思科網絡設備

Python 通過telnet 配置思科網絡設備

watermark 查看 nbsp open length import ffffff python腳本 acf

!!使用了 telnetlib 庫
1 拓撲
技術分享圖片

未運行腳本的時候,R4、R5是沒有到1.1.1.1和2.2.2.2的路由的:
技術分享圖片
技術分享圖片


配置文檔放在跟python腳本同一個目錄下:
技術分享圖片

運行python腳本之後:
技術分享圖片
技術分享圖片
技術分享圖片
成功!

#conf.py 文件
import time
from telnetlib import Telnet

def cfg(addr,user,pwd,secret,conf):
        tn = Telnet(addr)
        tn.write(user+‘\n‘)
        tn.write(pwd+‘\n‘)
        tn.write(‘enable\n‘)
        tn.write(secret+‘\n‘)
        tn.write(‘terminal length 0\n‘)
        time.sleep(1)
        tn.write(‘conf t\n‘)
        time.sleep(1)
        confp = open(conf,‘r‘)
        for cmd in confp:
          tn.write(cmd)    #應為讀一行的時候已經有換行符了,所以這裏就不添加+‘\n‘了
          print(cmd)       #用於查看讀取的命令
          time.sleep(1)    #建議每條命令都休眠一下,不然可能配置不了
        confp.close()

if __name__ == "__main__":
        fp = open(‘./ip.txt‘,‘r‘)    #如果有多臺主機要配置同樣的命令的話,可以將主機IP都放在一個文檔中
        for ip in fp:
          print("configuring "+ip.strip())
          conf = cfg(ip.strip(),‘cisco‘,‘cisco‘,‘cisco‘,‘./conf.txt‘)
          print(ip.strip()+‘ was finished!‘)
        print(‘done!‘)
        fp.close()


#ip.txt //按需添加
172.16.1.4
172.16.2.5


#conf.txt //按需添加
ip route 1.1.1.1 255.255.255.255 f0/0
ip route 2.2.2.2 255.255.255.255 f0/0
do write

Python 通過telnet 配置思科網絡設備