Python

Mis vahe on Paramikol ja Netmikol?

Mis vahe on Paramikol ja Netmikol?

Võrgustiku loomisel on palju erinevaid vaatenurki ja ei saa aru, kuidas suhelda kõigi seadmetega reaalses maailmas. Kuid kõigil võrguseadmetel on sarnane funktsionaalsus, mis valdamisel on automatiseeritud.

Nagu mu teistes õpetustes mainitud, on programmeerijad laisad ja soovivad alati tõhusust parandada - tehes seeläbi kõige vähem tööd 🙂 - ja võrguga seotud probleemide automatiseerimisel on paljudel võimalus.

Tänases kiires juhendis tutvustan teile SSH-i automatiseerimist kahe populaarse Pythoni teegi abil: Paramiko ja Netmiko. SSH automatiseerimiseks ja võrguseadmetega suhtlemiseks loome kahe teegi abil lihtsad pythoni skriptid.

Valin selle lähenemise, kuna eeskätt Paramiko ja Netmiko erinevustele keskendunud juhend oleks liiga lühike - piisaks lihtsast tabelist ja konkreetsest. Selle lähenemisviisi abil saate paremini nendega katsetada ja näha, mis mida ja kuidas teeb.

Alustame:

Mis on Paramiko?

Ametlikul veebisaidil määratletakse Paramiko järgmiselt:

"Paramiko on Python (2.7, 3.4+) SSHv2 protokolli juurutamine, mis pakub nii kliendi kui ka serveri funktsionaalsust.”

Loodan, et see oli selge. Aluselt tähendab see Paramiko on Pythoni teek SSH-ga suhtlemiseks.

Nüüd:

Kui tahame serverisse sisse logida, teame, et läheme terminali cmd, xterm, MobaXterm või lihtsalt Gnome Terminal-login'i, seejärel täidame käsud.

Vaatame, kuidas Paramiko saab selles aidata.

Paramiko installimine

Paramiko kasutamiseks peame selle installima. Teie arvutisse peaks olema installitud Python - eelistatavalt python 2. Paramiko installimiseks sisestage pipi abil käsk allpool.

sudo pip installib Paramiko
Python -m pip install paramiko

Kui soovite ehitada allikast, vaadake antud ressurssi kasutades ametlikku Paramiko GitHubi hoidlat:

https: // github.com / paramiko / paramiko

SSH-ga ühenduse loomine Paramiko abil

Paramiko abil SSH-ga ühenduse loomiseks kasutame meetodit connect (), mis nõuab parameetrit hostname - see toetab ka teisi parameetreid, kuid kuna me neid ei vaja, võime neid praegu eirata.

connect (hostinimi, port = 22, kasutajanimi = puudub, parool = pole, pkey = pole, võtmefailinimi = pole, ajalõpp = puudub, allow_agent = True, look_for_keys = True, compress = False, sock = Puudub, gss_auth = False, gss_kex = Vale, gss_deleg_creds = Tõsi, gss_host = Puudub, banner_timeout = Puudub, auth_timeout = Puudub, gss_trust_dns = Tõsi, parool = puudub, Puudutatud_algoritmid = Puudub)

Selle funktsiooni abil, mis on saadaval paramikos. Klient.SSHClient.connect (), ühendub määratud hostinimega ja autentib selle. Sihtsüsteemi kontrollitakse olemasolevate kohalike süsteemivõtmetega (usaldusväärsed).

Kui teil on kindel hostifail, saate kasutada meetodit load_host_keys () ja määrata Paramiko SSH-i kliendi lisama tundmatu hosti paramikole.AutoAddPolicy (). Kui kasutate klienti ebausaldusväärsetes süsteemides, vältige paramiko kasutamist.AutoAddPolicy.

SSH-i ühendamine parooliga

Ühendusmeetodist näeme, et meil on kasutajanime ja parooli parameetrid, mida saame kasutada süsteemiga ühenduse loomiseks. Kasutage SSH-i kasutajanime ja parooli kaudu ühendamiseks allpool toodud koodi.

alates paramiko import util, SSHClient, AutoAddPolicy
klient = SSHClient ()
klient.load_system_host_keys ()
klient.load_host_keys ("/ home / linuxhint /.ssh / teadaolevad hostid ")
klient.set_missing_host_key_policy (AutoAddPolicy ())
klient.connect (hostinimi = "linuxhint.com ", kasutajanimi =" admin ", parool =" AdminPassword ")
klient.Sulge()

Kui teil tekib Paramiko SSHClient klassi importimisel probleeme, vaadake järgmist virnastamisvoo küsimust:

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

SSH ühendamine võtme kaudu

Nagu me kõik teame, on SSH-i võtme kaudu ühendamine turvalisem kui toore parooli kasutamine. Paramiko teab seda ja võimaldab teil võtmefaili edastada ja ühenduda sihtsüsteemiga.

Mõelge allolevale koodile.

alates paramiko import SSHClient
alates paramiko AutoAddPolicy
klient = SSHClient ()
klient.load_system_host_keys ()
klient.load_host_keys ('/ home / linuxhint /.ssh / tuntud_hostid ')
klient.set_missing_host_key_policy (AutoAddPolicy ())
klient.connect ('linuxhint.com ', kasutajanimi =' admin ', key_filename =' ssh_key.pem ', paroolifraas =' AdminPassphrase ')
klient.Sulge()

Käskude käitamine SSH kaudu

Kui olete SSH-ga (üle Paramiko) süsteemile juurde pääsenud, saate käivitada rea ​​käske. Mõelge järgmisele koodilõigule:

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

Siinkohal teate, kuidas Paramiko teeki kasutada SSH automatiseerimiseks. Nagu võite ette kujutada, pole see põhjalik Paramiko juhend ja me ei süvene tööriista tegevusega seotud üksikasjadesse. Eesmärk oli näidata teile selle rakendamist.

Lisateavet leiate palun põhjalikumatest materjalidest, näiteks:

https: // docs.paramiko.org / et / stabiilne /
https: // github.com / paramiko / paramiko

Mis on Netmiko?

Netmiko on Paramikoga väga populaarne ja sarnane mõne olulise erinevusega:

Reaalsetes võrkudes töötades puutute kokku erinevate seadmemudelitega. Seega vajate usaldusväärset tööriista, mis aitab teil protsessi automatiseerida. Mõnel juhul ei saa Paramikot kasutada seadmete toe piirangute tõttu, mis viib viivituste ja krahhideni - saate toetatud seadmeid vaadata ametlikust dokumentatsioonist. See on ka tunduvalt aeglasem kui Netmiko.

Paramiko on pigem üldine SSH-moodul, mida saate kasutada konkreetsete SSH-ülesannete automatiseerimiseks. Seevastu Netmiko on laiem ja hästi optimeeritud võrguseadmete nagu lülitite ja ruuterite haldamiseks.

Abstraktsioon on Netmiko kasutamise teine ​​eelis. Netmiko pakub lihtsat funktsiooni, mille abil saate lehitsemise keelata. Näiteks võib SSH-seansi väljund olla rohkem kui üks leht. Tavaliste SSH-seansside abil peate järgmise lehe kuvamiseks lisama sisenditaolise ruumi. Netmiko pakub teile võimalust sellest alistada.

Netmiko eelised Paramiko ees on järgmised:

Kuidas installida Netmiko

Netmiko installimine on samuti suhteliselt lihtne:

Kõik, mida peate tegema, on veenduda, et teie süsteemi on installitud Python ja pip, ning käivitada käsk:

pip installige netmiko
python -m pip installib netmiko

SSH-ga ühenduse loomine Netmiko abil

Netmiko abil on seadme SSH-seanssidega ühenduse loomine väga lihtne. Pidage meeles, et Netmiko on rohkem optimeeritud selliste seadmete jaoks nagu ruuterid ja mitte üldine SSH.

Mõelge allolevale koodilõigule.

#import moodulid
netmiko import ConnectHandlerilt
# seadme teave sõnastiku vormingus.
device_config =
„Device_type”: „cisco_ios”,
„Ip”: „192.168.0.1 ”,
„Kasutajanimi”: „admin”,
“Parool”: “parool”,
“Saladus”: “parool”

ühendus = ConnectHandler (** device_config)

Kasutades ülaltoodud lihtsat koodi, on teil seadmega SSH-ühendus. Samuti saate seadme teavet sõnastikku edastamise asemel otse edastada.

Kui teil on SSH-seanss, saate käske täita funktsiooni send_command () abil. Netmiko toetatavad funktsioonid on järgmised:

Netmiko tavaliselt kasutatavad meetodid:

Nagu varem mainitud, pole see juhend Netmiko kasutamiseks, vaid lihtne juhend Netmiko ja Paramiko kohta. Lisateavet leiate ametlikust dokumentatsioonist.

https: // github.com / ktbyers / netmiko

Järeldus

Selles kiirjuhendis käsitlesime, kuidas kasutada paramikot üldiste SSH-ühenduste ja Netmiko võrguseadmete haldamiseks, illustreerides nende kahe erinevust.

Kokkuvõtteks:

Paramiko Netmiko
Kasulik ssh üldiseks kasutamiseks Kõige kasulikum võrguseadmete konfigureerimiseks.
Piiratud tugi paljudele võrguseadmetele. Toetab laias valikus võrguseadmeid.
HD Remastered Games Linuxile, millel pole kunagi varem Linuxi väljalaset olnud
Paljud mängude arendajad ja kirjastajad pakuvad frantsiisi eluea pikendamiseks välja vanade mängude HD-remasteri. Palun fännid, kes soovivad ühilduvus...
Kuidas kasutada AutoKeyt Linuxi mängude automatiseerimiseks
AutoKey on Linuxi ja X11 töölaua automatiseerimise utiliit, mis on programmeeritud Python 3, GTK ja Qt. Selle skriptimise ja MACRO funktsionaalsuse ab...
Kuidas näidata FPS-loendurit Linuxi mängudes
Linuxi mängimine sai suure tõuke, kui Valve teatas Steam-kliendi ja nende mängude Linuxi toest 2012. aastal. Sellest ajast peale on paljud AAA- ja ind...