„Python“

Kuo skiriasi Paramiko ir Netmiko?

Kuo skiriasi Paramiko ir Netmiko?

Kalbant apie tinklų kūrimą, yra daugybė perspektyvų ir negalima išmokti, kaip bendrauti su visais įrenginiais realiame pasaulyje. Tačiau visi tinklo įrenginiai turi panašią funkciją, kurią įvaldžius galima automatizuoti.

Kaip minėta kitose mano pamokose, programuotojai yra tingūs ir visada siekia pagerinti efektyvumą, todėl dirba mažiausiai darbo 🙂, o kai reikia automatizuoti su tinklu susijusias problemas, daugelis dažnai šansuoja.

Šiandieniniame trumpame vadove supažindinsiu jus su SSH automatizavimu naudojant dvi populiarias „Python“ bibliotekas: Paramiko ir Netmiko. Mes sukursime paprastus python scenarijus naudodami dvi bibliotekas SSH automatizavimui ir sąveikai su tinklo įrenginiais.

Pasirinkau tokį požiūrį, nes vadovas, daugiausia orientuotas į skirtumus tarp „Paramiko“ ir „Netmiko“, būtų per trumpas - pakaktų paprastos lentelės ir nebūtų konkretus. Laikydamiesi šio požiūrio, galėsite geriau eksperimentuoti su jais ir pamatyti, kas ką ir kaip daro.

Pradėkime:

Kas yra Paramiko?

Oficialioje svetainėje „Paramiko“ apibrėžiama taip:

„Paramiko yra pitonas (2.7, 3.4+) SSHv2 protokolo įgyvendinimas, užtikrinantis kliento ir serverio funkcijas.“

Tikiuosi, kad tai buvo aišku. Iš esmės tai reiškia „Paramiko“ yra pitonų biblioteka, skirta bendrauti su SSH.

Dabar:

Kai norime prisijungti prie serverio, žinome, kad einame į terminal-cmd, xterm, MobaXterm arba tiesiog „Gnome Terminal-login“, tada vykdome komandas.

Pažiūrėkime, kaip „Paramiko“ gali tai padėti.

Kaip įdiegti „Paramiko“

Norėdami naudoti „Paramiko“, turime jį įdiegti. Savo kompiuteryje turėtumėte būti įdiegę „Python“ - pageidautina „Python 2“. Naudodami pip įveskite toliau pateiktą komandą, kad įdiegtumėte „Paramiko“.

sudo pip įdiegti Paramiko
Python -m pip įdiekite paramiko

Jei norite kurti iš šaltinio, apsilankykite oficialioje „Paramiko GitHub“ saugykloje naudodami pateiktą šaltinį:

https: // github.com / paramiko / paramiko

Prisijungimas prie SSH naudojant „Paramiko“

Norėdami prisijungti prie SSH naudodami „Paramiko“, mes naudojame metodą „connect ()“, kuriam reikalingas parametras „hostname“ - jis palaiko ir kitus parametrus, tačiau kadangi mes jų nereikalaujame, galime juos dabar ignoruoti.

prisijungti (pagrindinio kompiuterio vardas, prievadas = 22, vartotojo vardas = Nėra, slaptažodis = Nėra, raktas = Nėra, key_filename = Nėra, timeout = Nėra, allow_agent = True, look_for_keys = True, compress = False, kojinė = Nėra, gss_auth = Klaidinga, gss_kex = False, gss_deleg_creds = True, gss_host = Nėra, banner_timeout = Nėra, auth_timeout = Nėra, gss_trust_dns = Tiesa, slaptafrazė = Nėra, invalid_algorithms = Nėra)

Naudojant šią funkciją, kurią galima rasti paramiko. Klientas.SSHClient.prisijungti (), prisijungti prie nurodyto pagrindinio kompiuterio pavadinimo ir jį autentifikuoti. Tikslinė sistema tikrinama pagal esamus vietinės sistemos raktus (patikimus).

Jei turite konkretų pagrindinio failo failą, galite naudoti metodą „load_host_keys ()“ ir nustatyti „Paramiko SSH“ klientą pridėti nežinomą pagrindinį kompiuterį prie „paramiko“.„AutoAddPolicy“ (). Jei klientą naudojate nepatikimose sistemose, venkite naudoti „paramiko“.„AutoAddPolicy“.

SSH prijungimas naudojant slaptažodį

Iš prisijungimo metodo galime pamatyti, kad turime vartotojo vardo ir slaptažodžio parametrus, kuriuos galime naudoti prisijungdami prie sistemos. Apsvarstykite toliau pateiktą kodą, kad prisijungtumėte SSH naudodami vartotojo vardą ir slaptažodį.

iš paramiko import util, SSHClient, AutoAddPolicy
klientas = SSHClient ()
klientas.load_system_host_keys ()
klientas.load_host_keys ("/ namai / linuxhint /.ssh / žinomi_hosts ")
klientas.set_missing_host_key_policy (AutoAddPolicy ())
klientas.prisijungti (hostname = "linuxhint.com ", vartotojo vardas =" admin ", slaptažodis =" Administratoriaus slaptažodis ")
klientas.Uždaryti()

Jei kyla problemų importuojant „Paramiko SSHClient“ klasę, perskaitykite šį „stackoverflow“ klausimą:

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

SSH prijungimas per raktą

Kaip visi žinome, SSH prijungimas per raktą yra saugesnis, nei naudojant neapdorotą slaptažodį. Paramiko tai žino ir leidžia perduoti rakto failą ir prisijungti prie tikslinės sistemos.

Apsvarstykite toliau pateiktą kodą.

iš paramiko importo SSHClient
iš „paramiko AutoAddPolicy“
klientas = SSHClient ()
klientas.load_system_host_keys ()
klientas.load_host_keys ('/ namai / linuxhint /.ssh / žinomi_hosts ')
klientas.set_missing_host_key_policy (AutoAddPolicy ())
klientas.prisijungti ('linuxhint.com ', vartotojo vardas =' admin ', key_filename =' ssh_key.pem ', passphrase =' AdminPassphrase ')
klientas.Uždaryti()

Komandų vykdymas per SSH

Gavę prieigą prie sistemos naudodami SSH (per „Paramiko“), galite atlikti komandų seriją. Apsvarstykite šį kodo fragmentą:

klientas = SSHClient ()
klientas.load_system_host_keys ()
klientas.prisijungti ('linuxhint.com ')
stdin, stdout, stderr = klientas.exec_command ('bash')
stdin.Uždaryti()
stdout.Uždaryti()
stderr.Uždaryti()
klientas.Uždaryti()

Šiuo metu jūs žinote, kaip naudoti „Paramiko“ biblioteką SSH automatizavimui. Kaip galite įsivaizduoti, tai nėra išsamus „Paramiko“ vadovas, ir mes nesigiliname į detales, susijusias su įrankio veikla. Tikslas buvo parodyti jums jo įgyvendinimą.

Norėdami gauti daugiau informacijos, skaitykite išsamesnes medžiagas, tokias kaip:

https: // docs.paramiko.org / lt / stabilus /
https: // github.com / paramiko / paramiko

Kas yra Netmiko?

„Netmiko“ yra labai populiarus ir panašus į „Paramiko“, turėdamas keletą reikšmingų skirtumų:

Dirbdami realaus pasaulio tinkluose susidursite su įvairiais įrenginių modeliais. Taigi jums reikia patikimo įrankio, kuris galėtų padėti jums automatizuoti procesą. Kai kuriais atvejais negalite naudoti „Paramiko“ dėl įrenginio palaikymo apribojimų, dėl kurių atsiranda vėlavimų ir gedimų. Palaikomus įrenginius galite patikrinti oficialiuose dokumentuose. Jis taip pat yra žymiai lėtesnis nei „Netmiko“.

„Paramiko“ yra labiau bendras SSH modulis, kurį galite naudoti automatizuodami konkrečias SSH užduotis. Priešingai, „Netmiko“ yra platesnis ir gerai optimizuotas valdyti tinklo įrenginius, tokius kaip jungikliai ir maršrutizatoriai.

Abstrakcija yra kitas „Netmiko“ naudojimo pranašumas. „Netmiko“ pateikia paprastą funkciją, kurią galite naudoti norėdami išjungti puslapių paiešką. Pavyzdžiui, SSH seanso išvestis gali būti daugiau nei vienas puslapis. Naudodamiesi įprastomis SSH sesijomis, turėsite pridėti įvestį panašią vietą, kad būtų rodomas kitas puslapis. „Netmiko“ suteikia jums galimybę tai nepaisyti.

„Netmiko“ pranašumai, palyginti su „Paramiko“, yra šie:

Kaip įdiegti „Netmiko“

Taip pat palyginti lengva įdiegti „Netmiko“:

Viskas, ką jums reikia padaryti, tai įsitikinti, kad sistemoje turite įdiegę „Python“ ir „pip“, ir vykdykite komandą:

pip įdiegti netmiko
python -m pip įdiegti netmiko

Prisijungimas prie SSH naudojant „Netmiko“

Prisijungti prie įrenginio SSH sesijų naudojant „Netmiko“ yra labai paprasta. Atminkite, kad „Netmiko“ yra labiau optimizuotas tokiems įrenginiams kaip maršrutizatoriai, o ne bendram SSH.

Apsvarstykite toliau pateiktą kodo fragmentą.

#import moduliai
iš „netmiko“ importo „ConnectHandler“
# įrenginio informacija žodyno formatu.
device_config =
„Device_type“: „cisco_ios“,
„Ip“: „192.168.0.1 “,
„Vartotojo vardas“: „admin“,
„Slaptažodis“: „slaptažodis“,
„Paslaptis“: „slaptažodis“

ryšys = „ConnectHandler“ (** device_config)

Naudodami paprastą kodą aukščiau, turėsite SSH ryšį su įrenginiu. Taip pat galite perduoti prietaiso informaciją tiesiogiai, o ne perduoti ją į žodyną.

Atlikę SSH sesiją, galite vykdyti komandas naudodami funkciją send_command (). „Netmiko“ palaikomos funkcijos:

„Netmiko“ dažniausiai naudojami metodai:

Kaip minėta anksčiau, tai nėra vadovas, kaip naudotis „Netmiko“, bet paprasta nurodymas, kas yra „Netmiko“ ir „Paramiko“. Norėdami gauti daugiau informacijos, patikrinkite oficialius dokumentus.

https: // github.com / ktbyers / netmiko

Išvada

Šiame greitame vadove aptarėme, kaip naudoti „paramiko“ bendriesiems SSH ryšiams ir „Netmiko“ tinklo įrenginių valdymui, iliustruojant šių dviejų skirtumus.

Pabaigai:

Paramiko Netmiko
Naudinga bendram ssh naudojimui Naudingiausia tinklo įrenginio konfigūracijai.
Ribotas palaikymas įvairiems tinklo įrenginiams. Palaiko platų tinklo įrenginių asortimentą.
Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...
Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...
Kaip atsisiųsti ir paleisti „Sid Meier Civilization VI“ sistemoje „Linux“
Įvadas į žaidimą „Civilization 6“ yra šiuolaikinė klasikinės koncepcijos, pristatytos „Age of Empires“ žaidimų serijoje, koncepcija. Idėja buvo gana p...