Как залить настройки на точку доступа cisco через python

Подключаем точку к сети и консольным кабелем. Включаем tftp сервер. Внутр папки ложим подготовленный файл конфигурации.

Как залить настройки на точку доступа cisco через python

После этого запускаем скрипт

import serial
from time import sleep
import sys

# настройки для ком порта
console = serial.Serial(
         port='COM9',
         baudrate=9600,
         parity="N",
         stopbits=1,
         bytesize=8,
         timeout=8
)

console.isOpen()
print(console.name)
sleep(1)
console.write("\r".encode())
sleep(1)
input_data = console.read(console.inWaiting()).decode()
print(input_data)

# команды для CLI
cuser = "admin"
cpass = "incredible"
cmd_en="enable"
cmd_sh_ip ="sh ip int br | include BV"
cmd_conft = "conf t"
cmd_chng_int = "interface BVI1"
cmd_chng_int_ip = "ip address 192.168.4.250 255.255.255.0"
cmd_chng_int_gate = "ip default-gateway 192.168.4.254"
cmd_conft_end = "end"
cmd_conft_wr = "write"
cmd_cp_run_srv = "copy tftp start"
cmd_cp_run_srv_host = "192.168.204.117"
cmd_cp_srv_statup = "copy tftp startup-config"
cmd_cp_configname = "ap_57_01"
cmd_realod= "reload"

def login_in_device(cuser,cpass,input_data):
#поехали
	if 'Username' in input_data:
		console.write(bytes(cuser,'UTF-8'))
	console.write("\r".encode())
	sleep(1)
	input_data = console.read(console.inWaiting()).decode()
	if 'Password' in input_data:
			console.write(bytes(cpass,'UTF-8'))
	console.write("\r".encode())
	sleep(1)
	input_data = console.read(console.inWaiting()).decode()
	print(input_data)

login_in_device(cuser,cpass,input_data)
	
# расширенный режим
console.write(bytes(cmd_en,'UTF-8'))
console.write("\r".encode())
sleep(1)
# смотрим текущтй ИП у интерфейса 
console.write(bytes(cmd_sh_ip,'UTF-8'))
console.write("\r".encode())
sleep(1)
input_data = console.read(console.inWaiting()).decode()
print(input_data)
# режим конфигурирования
console.write(bytes(cmd_conft,'UTF-8'))
console.write("\r".encode())
sleep(1)
# меняем ИП
console.write(bytes(cmd_chng_int,'UTF-8'))
console.write("\r".encode())
sleep(1)
console.write(bytes(cmd_chng_int_ip,'UTF-8'))
console.write("\r".encode())
console.write(bytes(cmd_chng_int_gate,'UTF-8'))
console.write("\r".encode())
sleep(1)
# выходи из режима конфигурирования
console.write(bytes(cmd_conft_end,'UTF-8'))
console.write("\r".encode())
sleep(1)
# записываем измен в стартап конфиг
#console.write(bytes(cmd_conft_wr,'UTF-8'))
#console.write("\r".encode())
#sleep(1)

input_data = console.read(console.inWaiting()).decode()
print(input_data)
# copy config from tftp to startup config
console.write(bytes(cmd_cp_srv_statup,'UTF-8'))
console.write("\r".encode())
sleep(.5)
console.write(bytes(cmd_cp_run_srv_host,'UTF-8'))
console.write("\r".encode())
sleep(.5)
console.write(bytes(cmd_cp_configname,'UTF-8'))
console.write("\r".encode())
# жмем enter для дистенейшена
console.write("\r".encode())
sleep(30)
input_data = console.read(console.inWaiting()).decode()
print(input_data)
if 'Error' in input_data:
	print("4to-to powlo ne tak")	
else:
# reload device
	print("========UWEL V REBOOT===========")
	console.write(bytes(cmd_realod,'UTF-8'))
	console.write("\r".encode())
	sleep(1)
	console.write("\r".encode())

sleep(60)
input_data = console.read(console.inWaiting()).decode()
print(input_data)
sleep(65)
input_data = console.read(console.inWaiting()).decode()
print(input_data)
console.write("\r".encode())
sleep(1)
input_data = console.read(console.inWaiting()).decode()
print(input_data)
login_in_device(cuser,cpass,input_data)
sleep(1)
input_data = console.read(console.inWaiting()).decode()
print(input_data)
sleep(20)



console.close()

 

 

Similar Posts:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *