Piton

Mi a különbség Paramiko és Netmiko között?

Mi a különbség Paramiko és Netmiko között?

Ami a hálózatot illeti, a nézőpontok széles skálája van, és nem lehet elsajátítani, hogyan kell a valós világ összes eszközével kapcsolatba lépni. Ugyanakkor minden hálózati eszköz hasonló funkciókkal rendelkezik, amelyek elsajátításakor automatizálhatók.

Amint azt a többi oktatóanyagomban említettem, a programozók lusták és mindig a hatékonyság javítására törekszenek - így a legkevesebb munkát végezik 🙂 - és amikor a hálózattal kapcsolatos problémák automatizálására kerül sor, sokan gyakran esélyesek.

A mai gyors útmutatóban bemutatom az SSH automatizálását két népszerű Python könyvtár segítségével: Paramiko és Netmiko. A két könyvtár segítségével egyszerű python szkripteket hozunk létre az SSH automatizálásához és a hálózati eszközökkel való interakcióhoz.

Azért választom ezt a megközelítést, mert egy útmutató, amely elsősorban a Paramiko és a Netmiko közötti különbségekre összpontosít, túl rövid lenne - elegendő lenne egy egyszerű táblázat, és nem konkrét. Ezzel a megközelítéssel jobban kísérletezhet velük, és megnézheti, hogy ki mit és hogyan csinál.

Kezdjük el:

Mi az a Paramiko?

A hivatalos weboldal a Paramikót a következőképpen határozza meg:

„A Paramiko egy Python (2.7, 3.4+) az SSHv2 protokoll megvalósítása, amely mind az ügyfél, mind a szerver funkciókat biztosítja.”

Remélem, ez egyértelmű volt. Alapvetően ez azt jelenti A Paramiko egy Python könyvtár az SSH-val való interakcióhoz.

Most:

Amikor be akarunk jelentkezni egy szerverre, tudjuk, hogy megyünk a terminál-cmd, xterm, MobaXterm vagy csak a Gnome Terminal-login oldalra, majd végrehajtjuk a parancsokat.

Lássuk, hogyan segíthet ebben a Paramiko.

A Paramiko telepítése

A Paramiko használatához telepítenünk kell. A gépre telepítenie kell a Python-ot - lehetőleg a Python 2-t. A pip használatával írja be az alábbi parancsot a Paramiko telepítéséhez.

sudo pip telepítse a Paramikót
A Python -m pip telepíti a paramiko-t

Ha a forrásból kíván építkezni, tekintse meg a hivatalos Paramiko GitHub adattárat a megadott erőforrás segítségével:

https: // github.com / paramiko / paramiko

Csatlakozás az SSH-hoz a Paramiko használatával

Az SSH-hoz való csatlakozáshoz a Paramiko használatával a connect () metódust használjuk, amely megköveteli a hostname paramétert - más paramétereket is támogat, de mivel ezekre nincs szükségünk, egyelőre figyelmen kívül hagyhatjuk őket.

connect (gazdagépnév, port = 22, felhasználónév = Nincs, jelszó = Nincs, kulcs = Nincs, kulcs_neve = Nincs, időtúllépés = Nincs, allow_agent = Igaz, look_for_keys = Igaz, tömörítés = Hamis, zokni = Nincs, gss_auth = Hamis, gss_kex = Hamis, gss_deleg_creds = Igaz, gss_host = Nincs, banner_timeout = Nincs, auth_timeout = Nincs, gss_trust_dns = Igaz, jelszó = Nincs, disabled_algorithms = Nincs)

Ennek a paramiko-ban elérhető funkciónak a használatával. Ügyfél.SSHClient.connect (), csatlakozik a megadott hosztnévhez és hitelesíti. A célrendszert ellenőrzik a meglévő helyi rendszerkulcsokkal (megbízható).

Ha van egy meghatározott gazdagépfájlja, használhatja a load_host_keys () metódust, és beállíthatja, hogy a Paramiko SSH kliens hozzáadjon ismeretlen gazdagépet a paramikóhoz.AutoAddPolicy (). Ha az ügyfelet nem megbízható rendszerekben használja, kerülje a paramiko használatát.AutoAddPolicy.

SSH csatlakoztatása jelszóval

A connect módszerből láthatjuk, hogy rendelkezünk a felhasználónév és jelszó paraméterekkel, amelyek segítségével csatlakozhatunk a rendszerhez. Vegye figyelembe az alábbi kódot az SSH felhasználónévvel és jelszóval történő összekapcsolásához.

a paramiko import util, az SSHClient, az AutoAddPolicy alkalmazásból
kliens = SSHClient ()
ügyfél.load_system_host_keys ()
ügyfél.load_host_keys ("/ home / linuxhint /.ssh / ismert_tulajdonosok ")
ügyfél.set_missing_host_key_policy (AutoAddPolicy ())
ügyfél.connect (hosztnév = "linuxhint.com ", felhasználónév =" admin ", password =" AdminPassword ")
ügyfél.Bezárás()

Ha problémák merülnek fel a Paramiko SSHClient osztály importálásakor, olvassa el a következő stackoverflow kérdést:

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

SSH összekapcsolása kulccsal

Mint mindannyian tudjuk, az SSH kulcson keresztül történő csatlakoztatása biztonságosabb, mint egy nyers jelszó használata. A Paramiko tudja ezt, és lehetővé teszi, hogy átadja a kulcsfájlt, és csatlakozzon a célrendszerhez.

Vegye figyelembe az alábbi kódot.

a paramiko import SSHClient-től
a paramiko AutoAddPolicy oldalról
kliens = SSHClient ()
ügyfél.load_system_host_keys ()
ügyfél.load_host_keys ('/ home / linuxhint /.ssh / ismert_hosztok ')
ügyfél.set_missing_host_key_policy (AutoAddPolicy ())
ügyfél.connect ('linuxhint.com ', felhasználónév =' admin ', kulcs_neve =' ssh_key.pem ', passphrase =' AdminPassphrase ')
ügyfél.Bezárás()

Parancsok futtatása SSH-n keresztül

Miután hozzáférést kapott a rendszerhez az SSH használatával (a Paramiko felett), parancsok sorozatát hajthatja végre. Vegye figyelembe a következő kódrészletet:

kliens = SSHClient ()
ügyfél.load_system_host_keys ()
ügyfél.connect ('linuxhint.com ')
stdin, stdout, stderr = kliens.exec_command ('bash')
stdin.Bezárás()
stdout.Bezárás()
stderr.Bezárás()
ügyfél.Bezárás()

Ezen a ponton tudja, hogyan kell használni a Paramiko könyvtárat az SSH automatizálásához. Ahogy el lehet képzelni, ez nem egy átfogó Paramiko útmutató, és nem merülünk bele az eszköz működésével kapcsolatos részletekbe. A cél az volt, hogy bemutassuk a megvalósítását.

További információkért kérjük, olvassa el az átfogóbb anyagokat, például:

https: // docs.paramiko.org / hu / stabil /
https: // github.com / paramiko / paramiko

Mi az a Netmiko?

A Netmiko nagyon népszerű és hasonló a Paramikóhoz, néhány jelentős különbséggel:

Amikor valós hálózatokon dolgozik, különféle eszközmodellekkel találkozhat. Szüksége van tehát egy megbízható eszközre, amely segíthet a folyamat automatizálásában. Bizonyos esetekben az eszköz támogatásának korlátai miatt nem használhatja a Paramikót, ami késésekhez és összeomlásokhoz vezet - ellenőrizheti a támogatott eszközöket a hivatalos dokumentációban. Ez is jelentősen lassabb, mint a Netmiko.

A Paramiko inkább egy általános SSH modul, amelyet felhasználhat specifikus SSH feladatok automatizálására. Ezzel szemben a Netmiko szélesebb körű és jól optimalizált hálózati eszközök, például kapcsolók és útválasztók kezelésére.

Az absztrakció a Netmiko használatának másik előnye. A Netmiko egy egyszerű funkciót biztosít, amellyel letilthatja a lapozást. Például az SSH munkamenet kimenete több oldal is lehet. A szokásos SSH munkamenetek használatával hozzá kell adnia egy bemenetszerű helyet a következő oldal megjelenítéséhez. A Netmiko lehetőséget kínál arra, hogy ezt felülbírálja.

A Netmiko előnyei a Paramikóval szemben:

A Netmiko telepítése

A Netmiko telepítése szintén viszonylag egyszerű:

Csak annyit kell tennie, hogy meg kell győződnie arról, hogy a Python és a pip telepítve van a rendszerén, és hajtsa végre a parancsot:

pip telepítse a netmikót
python -m pip telepítse a netmikót

Csatlakozás SSH-hez a Netmiko segítségével

A Netmiko használatával nagyon egyszerű csatlakozni az eszköz SSH munkameneteihez. Ne feledje, hogy a Netmiko jobban optimalizált eszközökhöz, például útválasztókhoz, és nem általános SSH-hoz.

Vegye figyelembe az alábbi kódrészletet.

#import modulok
a netmiko importtól a ConnectHandler
# eszközinformáció szótár formátumban.
device_config =
„Device_type”: „cisco_ios”,
„Ip”: „192.168.0.1 ”,
„Felhasználónév”: „admin”,
„Jelszó”: „jelszó”,
„Titok”: „jelszó”

kapcsolat = ConnectHandler (** device_config)

A fenti egyszerű kód használatával SSH-kapcsolatot fog létesíteni az eszközzel. A készülék adatait közvetlenül továbbíthatja a szótár helyett.

Miután megkapta az SSH munkamenetet, végrehajthatja a parancsokat a send_command () függvény segítségével. A netmiko által támogatott funkciók a következők:

A Netmiko általánosan alkalmazott módszerek:

Mint korábban említettük, ez nem egy útmutató a Netmiko használatához, hanem egy egyszerű útmutatás arról, hogy mi a Netmiko és a Paramiko. További információkért ellenőrizze a hivatalos dokumentációt.

https: // github.com / ktbyers / netmiko

Következtetés

Ebben a gyors útmutatóban megvitattuk, hogyan lehet a paramikót általános SSH kapcsolatokhoz és a Netmiko hálózati eszközkezeléshez használni, szemléltetve a kettő közötti különbségeket.

Következtetni:

Paramiko Netmiko
Hasznos általános ssh használatra A leghasznosabb a hálózati eszköz konfigurálásához.
Korlátozott támogatás a hálózati eszközök széles skálájához. Támogatja a hálózati eszközök széles skáláját.
Sid Meier Civilization VI letöltése és lejátszása Linuxon
Bevezetés a játékba A Civilization 6 egy modern felvétel a Age of Empires játékok sorozatában bevezetett klasszikus koncepcióra. Az ötlet meglehetősen...
A Doom telepítése és lejátszása Linuxon
Bevezetés a Doom-ba A Doom sorozat a 90-es években keletkezett az eredeti Doom megjelenése után. Azonnali sláger volt, és ettől kezdve a játéksorozat ...
Vulkan Linux felhasználók számára
A grafikus kártyák minden új generációjával azt látjuk, hogy a játékfejlesztők átlépik a grafikus hűség határait, és egy lépéssel közelebb kerülnek a ...