(Py) Biblioteka Netmiko (Przykłady)*
Spis treści
Pokaż
Przykładowe zastosowanie biblioteki Netmiko
Przykładowy kod Python
Wyświetlanie informacji o urządzeniu + tworzenie sieci VLAN
Przykładowe wykorzystanie biblioteki Netmiko:
from netmiko import ConnectHandler
iosv_l2 = {
'device_type': 'cisco_ios',
'host': '10.0.0.11',
'username': 'rkkr',
'password': 'rkkr',
'port' : 22,
#'secret': 'secret',
}
net_connect = ConnectHandler(**iosv_l2)
output = net_connect.send_command("show ip int brief")
print(output)
for n in range(10,16):
print("Delating VLAN" + str(n))
config_commands = ["vlan " + str(n), "name VLAN-" + str(n)]
output = net_connect.send_config_set(config_commands)
print(output)
- Powyższy kod Netmiko, wyświetla listę interfejsów sieciowych a następnie tworzy wskazaną liczbę sieci VLAN.
Konfiguracja urządzeń zgodnie z komendami pobranymi z pliku tekstowego
Przykładowy kod umożliwiający konfigurację wielu urządzeń sieciowych:
from getpass import getpass
from netmiko import ConnectHandler
username = input("Login: ")
password = getpass(prompt="Hasło: ")
# Pobranie komend konfiguracyjnych z pliku tekstowego:
with open("comands_list") as file:
commands_list = file.read().splitlines()
# Pobranie adresów IP z pliku tekstowego:
with open("ip_list") as file:
ip_list = file.read().splitlines()
# Przejście pętli po każdym adresie IP, pobranym z pliku tekstowego:
for ip_address in ip_list:
# Uzupełnienie danych dotyczących brakującego adresu IP:
device = {
'device_type': 'cisco_ios',
'host': ip_address,
'username': username,
'password': password,
}
# Nawiązanie połączenia z wskazanym urządzeniem:
net_connect = ConnectHandler(**device)
print("Łączenia z urządzeniem: " + ip_address)
# Wywołanie komendy 'show ip interfece brief':
outputshow = net_connect.send_command("show ip int brief")
print(outputshow)
# Wywołanie poszczególnych komend CLI, zapisanych w pliku tekstowym:
output = net_connect.send_config_set(commands_list)
print(output)
Obsługa błędów
Przykładowy kod umożliwiający konfigurację wielu urządzeń sieciowych:
from getpass import getpass
from netmiko import ConnectHandler
from netmiko.ssh_exception import NetMikoTimeoutException
from paramiko.ssh_exception import SSHException
from netmiko.ssh_exception import AuthenticationException
username = input("Login: ")
password = getpass(prompt="Hasło: ")
# Pobranie komend konfiguracyjnych z pliku tekstowego:
with open("comands_list") as file:
commands_list = file.read().splitlines()
# Pobranie adresów IP z pliku tekstowego:
with open("ip_list") as file:
ip_list = file.read().splitlines()
# Przejście pętli po każdym adresie IP, pobranym z pliku tekstowego:
for ip_address in ip_list:
# Uzupełnienie danych dotyczących brakującego adresu IP:
device = {
'device_type': 'cisco_ios',
'host': ip_address,
'username': username,
'password': password,
}
# Sprawdzenie wystąpienia błędów z połączeniem SSH:
try:
# Nawiązanie połączenia ze wskazanym urządzeniem:
net_connect = ConnectHandler(**device)
print("Łączenia z urządzeniem: " + ip_address)
except(AuthenticationException):
print("Nastąpił problem z uwieżytelnieniem połączenia do: " + ip_address)
continue
except(NetMikoTimeoutException):
print("Przekroczono czas łączenia z: " + ip_address)
continue
except(SSHException):
print("Nastąpił problem z połączeniem SSH, do adresu : " + ip_address)
continue
except Exception as unknown_error:
print("Nastąpił nieznany bład z połączeniem: " + ip_address)
print("Kod błędu:" + unknown_error)
continue
# Wywołanie komendy 'show ip interfece brief':
outputshow = net_connect.send_command("show ip int brief")
print(outputshow)
# Wywołanie poszczególnych komend CLI, zapisanych w pliku tekstowym:
output = net_connect.send_config_set(commands_list)
print(output)
Pozostałe tematy związane z bibliotekami / modułami Python
Podstawowe
- Moduł Random
- Moduł Time
- Moduł Datetime
- Moduł Threading Concurrent.futures
- Moduł Multiprocessing
- Moduł CSV
- Moduł Json
- Moduł Jinja2
- Moduł Xlrd
- Moduł os
- Moduł re (Regular expression)
- Moduł TextFSM
- Moduł Click
- Moduł HashLib
- Moduł Sorted
- Biblioteka SimpleCrypt
- Biblioteka Requests
Rozszerzone
SQL
- Biblioteka sqlite3 (Wstęp)
- Biblioteka psycopg2 (Wstęp)
- SQL Database
- SQL Table
- SQL Insert
- SQL Select
- SQL Update
- SQL Delete
PyQt 5
- Biblioteka PyQt 5 (Main window)
- Biblioteka PyQt 5 (Signals)
- Biblioteka PyQt 5 (Widgets)
- Biblioteka PyQt 5 (Actions)
- Biblioteka PyQt 5 (Dialogs)
- Biblioteka PyQt 5 (Windows)
Automatyzacja
- Moduł IPAddress
- Biblioteka TelnetLib
- Biblioteka Netmiko (Podstawy)
- Biblioteka Netmiko (Rozwinięcie)
- Biblioteka Netmiko (Przykłady)
- Biblioteka NAPALM
- Biblioteka Ncclient podstawy (Netconf)
- Biblioteka Ncclient przykłady (Netconf)
- Biblioteka Requests podstawy (Restconf)
- Biblioteka Requests przykłady (Restconf)