Jaka jest różnica między Pariko i Netmiko?

Jaka jest różnica między Pariko i Netmiko?

Jeśli chodzi o tworzenie sieci, istnieje szeroki zakres perspektyw i nie można opanować, jak wchodzić w interakcje ze wszystkimi urządzeniami w prawdziwym świecie. Jednak wszystkie urządzenia sieciowe mają podobną funkcjonalność, które po opanowaniu są automatyczne.

Jak wspomniano w moich innych samouczkach, programiści są leniwi i zawsze szukają poprawy wydajności-wykonując najmniejszą pracę 🙂-a jeśli chodzi o automatyzację problemów związanych z siecią, wielu często skacze na szansę.

W dzisiejszym szybkim przewodniku przedstawię Cię do automatyzacji SSH przy użyciu dwóch popularnych bibliotek Python: Paramiko I Netmiko. Utworzymy proste skrypty Python za pomocą dwóch bibliotek do automatyzacji SSH i interakcji z urządzeniami sieciowymi.

Wybieram to podejście, ponieważ przewodnik skupił się przede wszystkim na różnicach między Pariko i Netmiko, byłby zbyt krótki-wystarczyłaby prosta tabela-a. Przyjmując to podejście, będziesz mógł lepiej z nimi eksperymentować i zobaczyć, co robi i jak.

Zacznijmy:

Co to jest paramiko?

Oficjalna strona internetowa definiuje Pariko w następujący sposób:

„Pariszy to Python (2.7, 3.4+) Wdrożenie protokołu SSHV2, który zapewnia zarówno funkcjonalność klienta, jak i serwera."

Mam nadzieję, że to było jasne. Podstawowo oznacza to Pariszy to biblioteka Python do interakcji z SSH.

Teraz:

Kiedy chcemy zalogować się na serwerze, wiemy, że przechodzimy do terminal-CMD, Xterm, Mobaxterm lub po prostu gnome terminal-login, a następnie wykonywaj polecenia.

Zobaczmy, w jaki sposób Pariko może w tym pomóc.

Jak zainstalować paramiko

Aby użyć paramiko, musimy go zainstalować. Powinieneś mieć Python - najlepiej Python 2 - zainstalowany na swoim komputerze. Za pomocą PIP wprowadź poniższe polecenie, aby zainstalować paramiko.

sudo pip instaluj paramiko
Python -m PIP instaluj paramiko

Jeśli chcesz zbudować ze źródła, zapoznaj się z oficjalnym repozytorium Parithub Github za pomocą dostarczonego zasobu:

https: // github.com/paramiko/paramiko

Łączenie z SSH za pomocą Pariko

Aby połączyć się z SSH za pomocą Pariko, używamy metody Connect (), która wymaga parametru nazwy hosta-It również obsługuje inne parametry, ale ponieważ ich nie wymagamy, możemy je na razie zignorować.

connect (nazwa hosta, port = 22, nazwa użytkownika = Brak, hasło = brak, pkey = brak, key_filename = brak, limit czasu = brak, pozwól_agent = true, look_for_keys = true, compress = false, seck = none, gss_auth = false, gss_kex = Fałsz, gss_deleg_creds = true, gss_host = brak, banner_timeout = brak, auth_timeout = brak, gss_trust_dns = true, passPhraze = brak, disabled_algorytms = brak)

Korzystanie z tej funkcji, która jest dostępna w paramiko. Klient.Sshclient.Connect (), łączy się z określoną nazwą hosta i uwierzytelnia. System docelowy jest sprawdzany w stosunku do istniejących klawiszy systemu lokalnego (zaufane).

Jeśli masz określony plik hosta, możesz użyć metody Load_Host_Keys () i ustawić klienta Pariko SSH, aby dodać dowolny nieznany host do Pariko.Autoaddpolicy (). Jeśli używasz klienta w niezaufanych systemach, unikaj używania paramiko.Autoaddpolicy.

Łączenie SSH z hasłem

Z metody Connect możemy zobaczyć, że mamy parametry nazwy użytkownika i hasła, których możemy użyć do połączenia z systemem. Rozważ poniższy kod, aby podłączyć SSH za pomocą nazwy użytkownika i hasła.

od Pariko Import Util, SshClient, AutoadDpolicy
klient = sshclient ()
klient.load_system_host_keys ()
klient.load_host_keys ("/home/linuxhint/.ssh/znane_hosts ”)
klient.set_missing_host_key_policy (autoaddpolicy ())
klient.Connect (hostName = "Linuxhint.com ", nazwa użytkownika =" admin ", hasło =" administrator ")
klient.zamknąć()

Jeśli napotkasz problemy podczas importowania klasy SshClient Pariko, zapoznaj się z następującym pytaniem StackoverFlow:

https: // stackoverflow.com/Pytania/29378234/Python-Import-Paramiko-error-Cannot-Import-Name-Util

Łączenie SSH za pomocą klucza

Jak wszyscy wiemy, podłączenie SSH za pomocą klucza jest bezpieczniejsze niż używanie surowego hasła. Pariko wie o tym i pozwala przekazać plik klucza i połączyć się z systemem docelowym.

Rozważ kod poniżej.

od Pariko Import SshClient, autoaddpolicy
klient = sshclient ()
klient.load_system_host_keys ()
klient.load_host_keys ('/home/linuxhint/.ssh/znane_hosts ')
klient.set_missing_host_key_policy (autoaddpolicy ())
klient.Connect ('Linuxhint.com ', nazwa użytkownika = „admin”, key_filename =' ssh_key.PEM ', passphrase = „adminPassPhraze”)
klient.zamknąć()

Uruchamianie poleceń nad SSH

Po uzyskaniu dostępu do systemu za pomocą SSH (Over Pariko) możesz wykonać serię poleceń. Rozważ następujący fragment kodu:

Z Pariko Import SshClient
klient = sshclient ()
klient.load_system_host_keys ()
klient.Connect ('Linuxhint.com ')
stdin, stdout, stderr = klient.exec_command („bash”)
stdin.zamknąć()
Stdout.zamknąć()
Stderr.zamknąć()
klient.zamknąć()

W tym momencie wiesz, jak korzystać z biblioteki Pariko do automatyzacji SSH. Jak możesz sobie wyobrazić, nie jest to kompleksowy przewodnik Pariko, a my nie zanurzamy się w szczegółach związanych z tym, co robi to narzędzie. Celem było pokazanie ci wdrożenia.

Aby uzyskać więcej informacji, zapoznaj się z bardziej kompleksowymi materiałami, takimi jak:

https: // dokumenty.paramiko.org/en/stabilny/
https: // github.com/paramiko/paramiko

Co to jest Netmiko?

Netmiko jest bardzo popularne i podobne do Pariko z kilkoma znaczącymi różnicami:

  • Obsługa urządzenia
  • Wydajność

Pracując nad sieciami rzeczywistymi, natkniesz się na różne modele urządzeń. Dlatego potrzebujesz niezawodnego narzędzia, które może pomóc Ci zautomatyzować proces. W niektórych przypadkach nie można użyć Pariko z powodu ograniczeń obsługi urządzenia, co prowadzi do opóźnień i awarii-możesz sprawdzić obsługiwane urządzenia w oficjalnej dokumentacji. Jest również znacznie wolniejszy niż Netmiko.

Pariko jest bardziej ogólnym modułem SSH, którego można użyć do automatyzacji określonych zadań SSH. Natomiast Netmiko jest szerszy i dobrze zoptymalizowany do zarządzania urządzeniami sieciowymi, takimi jak przełączniki i router.

Abstrakcja jest drugą zaletą korzystania z Netmiko. Netmiko zapewnia prostą funkcję, której możesz użyć, aby wyłączyć stronicowanie. Na przykład wyjście z sesji SSH może być więcej niż jedna strona. Korzystając z zwykłych sesji SSH, będziesz musiał dodać miejsce przypominające wejście, aby wyświetlić następną stronę. Netmiko zapewnia sposób na zastąpienie tego.

Zalety Netmiko nad Parikieko to:

  • Automatycznie podłącz się za pośrednictwem SSH do urządzeń sieciowych.
  • Zapewnia prostsze wykonywanie poleceń i danych wyjściowych danych.
  • Zapewnia prostszą funkcjonalność poleceń konfiguracyjnych, w tym akcji zatwierdzenia.
  • Obsługa wielu urządzeń dla dostawców i platform urządzeń sieciowych.

Jak zainstalować Netmiko

Instalowanie Netmiko jest również stosunkowo łatwe:

Wszystko, co musisz zrobić, to upewnić się, że masz zainstalowane w systemie Python i PIP i wykonać polecenie:

PIP Instaluj Netmiko
Python -m PIP instaluj netmiko

Łączenie z SSH za pomocą Netmiko

Łączenie z sesjami SSH urządzeń za pomocą Netmiko jest bardzo proste. Pamiętaj, że Netmiko jest bardziej zoptymalizowane dla urządzeń takich jak routery, a nie ogólne ssh.

Rozważ fragment kodu poniżej.

# Moduły importu
od Netmiko import ConnectHandler
# Informacje o urządzeniu w formacie słownika.
device_config = "device_type": "cisco_ios",
„IP”: „192.168.0.1 ",
„Nazwa użytkownika”: „admin”,
„Hasło”: „hasło”,
„Secret”: „Hasło”

Connection = ConnectHandler (** device_config)

Korzystając z powyższego prostego kodu, będziesz mieć połączenie SSH z urządzeniem. Możesz także przekazać informacje o urządzeniu bezpośrednio zamiast przekazywać je słownikowi.

Po sesji SSH możesz wykonywać polecenia za pomocą funkcji send_command (). Funkcje obsługiwane przez Netmiko obejmują:

Netmiko często używane metody:

  • net_connect.Send_Command () - Funkcje te wysyła polecenia w dół kanału sieciowego i zwracaj wyjście na podstawie wzoru.
  • net_connect.send_command_timing () - Zwraca dane wyjściowe na podstawie czasu z polecenia wysłanego kanału sieciowego.
  • net_connect.send_config_set () - stosuje ustawienia konfiguracji do zdalnych urządzeń.
  • net_connect.send_config_from_file () - stosuje ustawienia konfiguracji z pliku zewnętrznego
  • net_connect.SAVE_CONFIG () - Eksportuje i zapisuje uruchomioną konfigurację jako konfigurację uruchamiania.
  • net_connect.enable () - Zapyta urządzenie do aktywacji trybu włączenia.
  • net_connect.find_prompt () - Zwróć bieżącą monit routerze
  • net_connect.commit () - uruchamia polecenia zatwierdzenia na urządzeniach takich jak Juniper i iOS -xr
  • net_connect.odłącz () - kończy sesje
  • net_connect.write_channel () - umożliwia zapis niskiego poziomu
  • net_connect.read_channel () - umożliwia odczyt niskiego poziomu.

Jak wspomniano wcześniej, nie jest to przewodnik na temat korzystania z Netmiko, ale prosty kierunek tego, czym są Netmiko i Pariko. Sprawdź oficjalną dokumentację, aby uzyskać więcej informacji.

https: // github.com/ktbyers/netmiko

Wniosek

W tym szybkim przewodniku omówiliśmy sposób korzystania z Pariko do ogólnych połączeń SSH i zarządzania urządzeniami sieciowymi Netmiko, ilustrując różnice między nimi.

Podsumowując:

Paramiko Netmiko
Przydatne do ogólnego użytku SSH Najbardziej przydatne do konfiguracji urządzeń sieciowych.
Ograniczone wsparcie dla szerokiej gamy urządzeń sieciowych. Obsługuje szeroką gamę urządzeń sieciowych.