Piton

Koja je razlika između Paramika i Netmika?

Koja je razlika između Paramika i Netmika?

Što se tiče umrežavanja, postoji širok raspon perspektiva i ne može se savladati način interakcije sa svim uređajima u stvarnom svijetu. Međutim, svi mrežni uređaji dijele slične funkcije koje su, kad se savladaju, automatizirane.

Kao što je spomenuto u mojim drugim tutorijalima, programeri su lijeni i uvijek nastoje poboljšati učinkovitost - čineći tako najmanje posla 🙂 -, a što se tiče automatizacije mrežnih problema, mnogi često riskiraju.

U današnjem kratkom vodiču predstavit ću vam automatizaciju SSH-a pomoću dvije popularne Python knjižnice: Paramiko i Netmiko. Stvorit ćemo jednostavne python skripte pomoću dvije knjižnice za automatizaciju SSH-a i interakciju s mrežnim uređajima.

Odabirem ovaj pristup jer bi vodič koji se prvenstveno fokusirao na razlike između Paramika i Netmika bio prekratak - dovoljna bi bila jednostavna tablica - i ne bi bila konkretna. Uzimajući ovaj pristup, moći ćete bolje eksperimentirati s njima i vidjeti što što i kako radi.

Započnimo:

Što je Paramiko?

Službena web stranica definira Paramiko na sljedeći način:

„Paramiko je Python (2.7, 3.4+) implementacija SSHv2 protokola koji pruža funkcionalnost i klijenta i poslužitelja."

Nadam se da je to bilo jasno. Temeljno, to znači Paramiko je python biblioteka za interakciju sa SSH-om.

Sada:

Kada se želimo prijaviti na poslužitelj, znamo da idemo na terminal-cmd, xterm, MobaXterm ili samo na prijavu na Gnome Terminal, a zatim izvršavamo naredbe.

Pogledajmo kako Paramiko može pomoći u tome.

Kako instalirati Paramiko

Da bismo koristili Paramiko, moramo ga instalirati. Na računalu biste trebali instalirati Python - po mogućnosti python 2. Koristeći pip, unesite naredbu ispod kako biste instalirali Paramiko.

sudo pip instalirati Paramiko
Python -m pip instalirati paramiko

Ako želite graditi iz izvora, obratite se službenom spremištu Paramiko GitHub koristeći ponuđeni resurs:

https: // github.com / paramiko / paramiko

Povezivanje na SSH pomoću Paramika

Za povezivanje sa SSH-om pomoću Paramiko-a koristimo metodu connect () koja zahtijeva parametar hostname -a također podržava i druge parametre, ali budući da ih ne trebamo, zasad ih možemo zanemariti.

povezivanje (ime hosta, port = 22, korisničko ime = Nijedno, lozinka = Nijedno, pkey = Nijedno, naziv_datoteke = Nijedan, timeout = Nijedan, allow_agent = True, look_for_keys = True, compress = False, sock = None, gss_auth = False, gss_kex = False, gss_deleg_creds = True, gss_host = None, banner_timeout = None, auth_timeout = None, gss_trust_dns = True, passphrase = None, disabled_algorithms = None)

Korištenjem ove funkcije koja je dostupna u paramiku. Klijent.SSHClient.connect (), povezuje se s navedenim imenom hosta i ovjerava ga. Ciljni sustav provjerava se prema postojećim ključevima lokalnog sustava (pouzdan).

Ako imate određenu datoteku hosta, možete koristiti metodu load_host_keys () i postaviti Paramiko SSH klijent da doda bilo koji nepoznati host u paramiko.AutoAddPolicy (). Ako koristite klijenta u nepouzdanim sustavima, izbjegavajte upotrebu paramika.AutoAddPolicy.

Povezivanje SSH-a lozinkom

Iz metode povezivanja možemo vidjeti da imamo parametre korisničkog imena i lozinke koje možemo koristiti za povezivanje sa sustavom. Razmotrite donji kod za povezivanje SSH-a putem korisničkog imena i lozinke.

iz paramiko import util, SSHClient, AutoAddPolicy
klijent = SSHClient ()
klijent.load_system_host_keys ()
klijent.load_host_keys ("/ home / linuxhint /.ssh / poznati_hostovi ")
klijent.set_missing_host_key_policy (AutoAddPolicy ())
klijent.povezivanje (ime hosta = "linuxhint.com ", korisničko ime =" admin ", lozinka =" AdminPassword ")
klijent.Zatvoriti()

Ako naiđete na probleme prilikom uvoza klase Paramiko SSHClient, pogledajte sljedeće pitanje stackoverflow:

https: // stackoverflow.com / questions / 29378234 / python-import-paramiko-error-cannot-import-name-util

Povezivanje SSH putem ključa

Kao što svi znamo, povezivanje SSH-a putem ključa sigurnije je od upotrebe sirove lozinke. Paramiko to zna i omogućuje vam prosljeđivanje datoteke ključa i povezivanje s ciljnim sustavom.

Razmotrite donji kod.

iz paramiko import SSHClient
iz paramiko AutoAddPolicy
klijent = SSHClient ()
klijent.load_system_host_keys ()
klijent.load_host_keys ('/ home / linuxhint /.ssh / poznati_hostovi ')
klijent.set_missing_host_key_policy (AutoAddPolicy ())
klijent.connect ('linuxhint.com ', korisničko ime =' admin ', naziv_datoteke =' ssh_key.pem ', passphrase =' AdminPassphrase ')
klijent.Zatvoriti()

Pokretanje naredbi preko SSH-a

Jednom kada pristupite sustavu pomoću SSH-a (preko Paramika), možete izvršiti niz naredbi. Razmotrite sljedeći isječak koda:

klijent = SSHClient ()
klijent.load_system_host_keys ()
klijent.connect ('linuxhint.com ')
stdin, stdout, stderr = klijent.exec_command ('bash')
stdin.Zatvoriti()
stdout.Zatvoriti()
stderr.Zatvoriti()
klijent.Zatvoriti()

U ovom trenutku znate kako koristiti Paramiko knjižnicu za automatizaciju SSH-a. Kao što možete zamisliti, ovo nije sveobuhvatan vodič za Paramiko i ne ulazimo u detalje vezane uz ono što alat radi. Cilj je bio pokazati vam njegovu provedbu.

Dodatne informacije potražite u opsežnijim materijalima kao što su:

https: // docs.paramiko.org / hr / stabilno /
https: // github.com / paramiko / paramiko

Što je Netmiko?

Netmiko je vrlo popularan i sličan je Paramiku s nekoliko značajnih razlika:

Kada radite na mrežama iz stvarnog svijeta, naići ćete na razne modele uređaja. Stoga vam je potreban pouzdan alat koji vam može pomoći u automatizaciji postupka. U nekim slučajevima ne možete koristiti Paramiko zbog ograničenja podrške uređaja, što dovodi do kašnjenja i padova - podržane uređaje možete provjeriti u službenoj dokumentaciji. Također je znatno sporiji od Netmika.

Paramiko je više generički SSH modul koji možete koristiti za automatizaciju određenih SSH zadataka. Nasuprot tome, Netmiko je širi i dobro je optimiziran za upravljanje mrežnim uređajima poput prekidača i usmjerivača.

Apstrakcija je druga prednost korištenja Netmika. Netmiko nudi jednostavnu funkciju kojom možete onemogućiti straničenje. Na primjer, izlaz iz SSH sesije može biti više od jedne stranice. Korištenjem redovnih SSH sesija morat ćete dodati prostor sličan ulaznom za prikaz sljedeće stranice. Netmiko vam pruža način da to poništite.

Prednosti Netmika nad Paramikom su:

Kako instalirati Netmiko

Instaliranje Netmika je također relativno jednostavno:

Sve što morate učiniti je osigurati da na vašem sustavu instalirate Python i pip i izvršiti naredbu:

pip instalirati netmiko
python -m pip instalirati netmiko

Spajanje na SSH pomoću Netmika

Povezivanje sa SSH sesijama uređaja pomoću Netmika vrlo je jednostavno. Ne zaboravite da je Netmiko optimiziran za uređaje poput usmjerivača, a ne za generički SSH.

Razmotrite isječak koda u nastavku.

#import module
iz netmiko uvoza ConnectHandler
# podataka o uređaju u formatu rječnika.
device_config =
“Device_type”: “cisco_ios”,
“Ip”: “192.168.0.1 ”,
“Username”: “admin”,
“Lozinka”: “lozinka”,
“Secret”: “lozinka”

veza = ConnectHandler (** device_config)

Koristeći gornji jednostavni kod, imat ćete SSH vezu s uređajem. Informacije o uređaju možete i proslijediti izravno, umjesto da ih proslijedite u rječnik.

Nakon što imate SSH sesiju, možete izvršavati naredbe pomoću funkcije send_command (). Funkcije koje podržava netmiko uključuju:

Netmiko najčešće korištene metode:

Kao što je ranije spomenuto, ovo nije vodič za upotrebu Netmika, već jednostavan smjer onoga što su Netmiko i Paramiko. Dodatne informacije potražite u službenoj dokumentaciji.

https: // github.com / ktbyers / netmiko

Zaključak

U ovom smo brzom vodiču razgovarali o tome kako koristiti paramiko za generičke SSH veze i upravljanje mrežnim uređajima Netmiko, ilustrirajući razlike između dva.

Zaključiti:

Paramiko Netmiko
Korisno za generičku upotrebu ssh-a Najkorisnije za konfiguraciju mrežnog uređaja.
Ograničena podrška za širok raspon mrežnih uređaja. Podržava širok raspon mrežnih uređaja.
Instalirajte najnoviju strategiju igre OpenRA na Ubuntu Linux
OpenRA je Libre / Free Real Time strateški pokretač igre koji stvara rane Westwoodove igre poput klasične Command & Conquer: Red Alert. Distribuirani ...
Instalirajte najnoviji Dolphin Emulator za Gamecube i Wii na Linux
Dolphin Emulator omogućuje vam igranje odabranih Gamecube i Wii igara na Linux osobnim računalima (PC). Dolphin Emulator je slobodno dostupan i emula...
Kako koristiti GameConqueror Cheat Engine u Linuxu
Članak pokriva vodič o korištenju GameConqueror varalice u Linuxu. Mnogi korisnici koji igraju igre na sustavu Windows često koriste aplikaciju "Cheat...