У меня есть 3 маршрутизатора, и в одно время мне просто нужно подключиться по ssh только к любому 1 из 3 маршрутизаторов и выполнить некоторую команду. На данный момент мой код будет ssh для всех 3 маршрутизаторов.
Мне просто нужно ssh только на 1 активный маршрутизатор.
Сценарий
Сначала проверьте 1-й маршрутизатор, если он активен, и если он активен .. перейдите к ssh к 1-му маршрутизатору и выполните команду..end..but ... если 1-й маршрутизатор выключен и невидим для сети, попробуйте проверить 2-й маршрутизатор и, если он жив, перейдите к ssh на 2-й маршрутизатор и выполните команду ... завершить ... если не работает ... проверить 3-й маршрутизатор ... и, если все не работает, дать уведомление.
Я использую Netmiko для SSH устройств.
Это код ssh для всех устройств: -
with open('routers.json') as dev_file:
devices = json.load(dev_file)
for device in routers['router']:
try:
print('Connecting to device:', device['ip'])
connection = netmiko.ConnectHandler(**device)
if device['device_type'] == "cisco_ios" :
output = net_connect.send_command("show arp")
print(output)
Это файл routers.json: -
{
"router": [
{
"device_type": "cisco_ios",
"ip": "192.168.100.10",
"password": "cisco123",
"username": "user1"
},
{
"device_type": "cisco_ios",
"ip": "192.168.100.20",
"password": "cisco123",
"username": "user1"
},
{
"device_type": "cisco_ios",
"ip": "192.168.100.30",
"password": "cisco123",
"username": "user1"
}
]
}
Просто нужно подключиться по ssh только к 1 из 3 маршрутизаторов, если они активны и надежны. Пожалуйста, помогите дальше. Спасибо
** Добавить оператор прерывания, если найден маршрутизатор. Если нет, продолжайте проверять другие маршрутизаторы.