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, AutoadDpolicyJeś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, autoaddpolicyUruchamianie 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 SshClientW 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:
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:
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 importuKorzystają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:
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. |