Python

Kakšna je razlika med Paramiko in Netmiko?

Kakšna je razlika med Paramiko in Netmiko?

Ko gre za mreženje, obstaja širok spekter perspektiv in ni mogoče obvladati, kako sodelovati z vsemi napravami v resničnem svetu. Vse omrežne naprave pa imajo podobno funkcionalnost, ki je obvladana samodejno.

Kot je bilo omenjeno v mojih drugih vajah, so programerji leni in si vedno prizadevajo za izboljšanje učinkovitosti, s čimer opravijo najmanj dela 🙂 - in ko gre za avtomatizacijo težav, povezanih z omrežjem, mnogi pogosto izkoristijo priložnost.

V današnjem kratkem priročniku vam bom predstavil avtomatizacijo SSH z uporabo dveh priljubljenih knjižnic Python: Paramiko in Netmiko. Z uporabo obeh knjižnic bomo ustvarili preproste skripte python za avtomatizacijo SSH in interakcijo z omrežnimi napravami.

Za ta pristop se odločim, ker bi bil vodič, osredotočen predvsem na razlike med Paramikom in Netmikom, prekratk - zadostovala bi preprosta tabela - in ne konkretna. S takšnim pristopom boste lažje eksperimentirali z njimi in ugotovili, kaj naredi kaj in kako.

Začnimo:

Kaj je Paramiko?

Uradna spletna stran Paramiko opredeljuje tako:

»Paramiko je piton (2.7, 3.4+) izvedba protokola SSHv2, ki zagotavlja odjemalsko in strežniško funkcionalnost."

Upam, da je bilo to jasno. Temeljno pomeni Paramiko je python knjižnica za interakcijo s SSH.

Zdaj:

Ko se želimo prijaviti v strežnik, vemo, da gremo na terminal-cmd, xterm, MobaXterm ali samo prijavo v Gnome Terminal, nato pa izvršimo ukaze.

Poglejmo, kako lahko Paramiko pri tem pomaga.

Kako namestiti Paramiko

Če želite uporabljati Paramiko, ga moramo namestiti. V računalniku bi morali imeti nameščen Python - po možnosti python 2. S pomočjo pipa vnesite spodnji ukaz za namestitev Paramiko.

sudo pip namestite Paramiko
Python -m pip namesti paramiko

Če želite graditi iz vira, poiščite uradno skladišče Paramiko GitHub z uporabo priloženega vira:

https: // github.com / paramiko / paramiko

Povezava s SSH s pomočjo Paramiko

Za povezavo s SSH s pomočjo Paramiko uporabljamo metodo connect (), ki zahteva parameter gostiteljskega imena - podpira tudi druge parametre, ker pa jih ne potrebujemo, jih lahko za zdaj prezremo.

poveži (ime gostitelja, vrata = 22, uporabniško ime = Brez, geslo = Brez, pkey = Brez, ime_datoteke = Brez, časovna omejitev = Brez, dovoli_agent = True, look_for_keys = True, compress = False, nogavica = None, gss_auth = False, gss_kex = False, gss_deleg_creds = True, gss_host = Brez, banner_timeout = Brez, auth_timeout = Brez, gss_trust_dns = True, geslo = Brez, disabled_algorithms = Brez)

Uporaba te funkcije, ki je na voljo v paramiko. Naročnik.SSHClient.connect (), poveže se z določenim imenom gostitelja in ga preveri. Ciljni sistem se preveri glede na obstoječe lokalne sistemske ključe (zaupanja vreden).

Če imate določeno gostiteljsko datoteko, lahko uporabite metodo load_host_keys () in nastavite odjemalca Paramiko SSH, da v paramiko doda neznanega gostitelja.AutoAddPolicy (). Če odjemalca uporabljate v nezaupljivih sistemih, se izogibajte uporabi paramika.AutoAddPolicy.

Povezovanje SSH z geslom

Iz metode povezovanja lahko vidimo, da imamo parametre uporabniškega imena in gesla, s katerimi se lahko povežemo s sistemom. Upoštevajte spodnjo kodo za povezavo SSH z uporabniškim imenom in geslom.

iz paramiko import util, SSHClient, AutoAddPolicy
odjemalec = SSHClient ()
stranka.load_system_host_keys ()
stranka.load_host_keys ("/ home / linuxhint /.ssh / known_hosts ")
stranka.set_missing_host_key_policy (AutoAddPolicy ())
stranka.poveži (ime gostitelja = "linuxhint.com ", uporabniško ime =" admin ", geslo =" AdminPassword ")
stranka.zapri ()

Če pri uvozu razreda Paramiko SSHClient naletite na težave, glejte naslednje vprašanje stackoverflow:

https: // stackoverflow.com / questions / 29378234 / python-import-paramiko-error-can't-import-name-util

Povezava SSH prek ključa

Kot vsi vemo, je povezovanje SSH prek ključa varnejše kot uporaba surovega gesla. Paramiko to ve in vam omogoča, da prenesete datoteko ključa in se povežete s ciljnim sistemom.

Upoštevajte spodnjo kodo.

iz paramiko import SSHClient
od paramiko AutoAddPolicy
odjemalec = SSHClient ()
stranka.load_system_host_keys ()
stranka.load_host_keys ('/ home / linuxhint /.ssh / known_hosts ')
stranka.set_missing_host_key_policy (AutoAddPolicy ())
stranka.connect ('linuxhint.com ', uporabniško ime =' admin ', key_filename =' ssh_key.pem ', passphrase =' AdminPassphrase ')
stranka.zapri ()

Izvajanje ukazov prek SSH

Ko pridobite dostop do sistema s pomočjo SSH (prek Paramika), lahko izvedete vrsto ukazov. Upoštevajte naslednji delček kode:

odjemalec = SSHClient ()
stranka.load_system_host_keys ()
stranka.connect ('linuxhint.com ')
stdin, stdout, stderr = odjemalec.exec_command ('bash')
stdin.zapri ()
stdout.zapri ()
stderr.zapri ()
stranka.zapri ()

Na tej točki veste, kako uporabljati knjižnico Paramiko za avtomatizacijo SSH. Kot si lahko predstavljate, to ni izčrpen vodnik Paramiko in se ne spuščamo v podrobnosti, povezane s tem, kaj orodje počne. Cilj je bil pokazati, kako se izvaja.

Za več informacij glejte obsežnejša gradiva, kot so:

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

Kaj je Netmiko?

Netmiko je zelo priljubljen in podoben Paramiku z nekaj pomembnimi razlikami:

Pri delu v resničnih omrežjih boste naleteli na različne modele naprav. Zato potrebujete zanesljivo orodje, ki vam lahko pomaga avtomatizirati postopek. V nekaterih primerih Paramika ne morete uporabljati zaradi omejitev podpore naprav, ki vodijo do zastojev in zrušitev - podprte naprave lahko preverite v uradni dokumentaciji. Je tudi precej počasnejši od Netmika.

Paramiko je bolj generični SSH modul, ki ga lahko uporabite za avtomatizacijo določenih SSH nalog. Nasprotno pa je Netmiko širši in dobro optimiziran za upravljanje omrežnih naprav, kot so stikala in usmerjevalniki.

Druga prednost uporabe Netmika je abstrakcija. Netmiko ponuja preprosto funkcijo, s katero lahko onemogočite ostranjevanje. Na primer, izhod iz seje SSH je lahko več kot ena stran. Z rednimi sejami SSH boste morali dodati vhodni prostor za prikaz naslednje strani. Netmiko vam ponuja način, da to preglasite.

Prednosti Netmika pred Paramikom so:

Kako namestiti Netmiko

Namestitev Netmika je tudi sorazmerno enostavna:

Vse, kar morate storiti, je zagotoviti, da imate v sistemu nameščene Python in pip, in izvršiti ukaz:

pip namestite netmiko
python -m pip namestite netmiko

Povezava s SSH z uporabo Netmika

Povezava s SSH sejami naprave z uporabo Netmika je zelo preprosta. Ne pozabite, da je Netmiko bolj optimiziran za naprave, kot so usmerjevalniki in ne generični SSH.

Upoštevajte spodnji delček kode.

#import module
iz netmiko import ConnectHandler
# informacije o napravi v obliki slovarja.
device_config =
“Device_type”: “cisco_ios”,
“Ip”: “192.168.0.1 ",
“Username”: “admin”,
“Geslo”: “geslo”,
“Secret”: “geslo”

connection = ConnectHandler (** device_config)

Z zgoraj navedeno preprosto kodo boste imeli na napravi SSH povezavo. Informacije o napravi lahko posredujete tudi neposredno, namesto da jih posredujete v slovar.

Ko imate sejo SSH, lahko ukaze izvajate s funkcijo send_command (). Funkcije, ki jih podpira netmiko, vključujejo:

Netmiko najpogosteje uporabljene metode:

Kot smo že omenili, to ni vodnik o tem, kako uporabljati Netmiko, temveč preprosta usmeritev tega, kaj sta Netmiko in Paramiko. Za več informacij poglejte v uradno dokumentacijo.

https: // github.com / ktbyers / netmiko

Zaključek

V tem kratkem priročniku smo razpravljali o uporabi paramika za generične SSH povezave in upravljanje omrežnih naprav Netmiko ter ponazorili razlike med obema.

Za zaključek:

Paramiko Netmiko
Uporabno za splošno uporabo ssh Najbolj uporabno za konfiguracijo omrežne naprave.
Omejena podpora za široko paleto omrežnih naprav. Podpira široko paleto omrežnih naprav.
S temi brezplačnimi orodji dodajte gibe miške v sistem Windows 10
V zadnjih letih so se računalniki in operacijski sistemi močno razvili. Včasih so morali uporabniki uporabljati ukaze za krmarjenje po upraviteljih da...
Nadzirajte in upravljajte gibanje miške med več monitorji v sistemu Windows 10
Upravitelj miške z dvojnim zaslonom vam omogoča nadzor in konfiguriranje gibanja miške med več monitorji, tako da upočasni gibanje blizu meje. Windows...
WinMouse vam omogoča prilagajanje in izboljšanje premikanja kazalca miške v računalniku z operacijskim sistemom Windows
Če želite izboljšati privzete funkcije kazalca miške, uporabite brezplačno programsko opremo WinMouse. Dodaja več funkcij, s pomočjo katerih boste kar...