Python

У чому різниця між Параміко та Нетміко?

У чому різниця між Параміко та Нетміко?

Що стосується мереж, то існує широкий спектр перспектив, і неможливо зрозуміти, як взаємодіяти з усіма пристроями в реальному світі. Однак усі мережеві пристрої мають схожу функціональність, яка при засвоєнні є автоматизованою.

Як згадувалося в моїх інших навчальних посібниках, програмісти ледачі і завжди прагнуть підвищити ефективність, роблячи таким чином найменшу роботу 🙂 -, а коли справа доходить до автоматизації проблем, пов’язаних з мережею, багато хто часто схиляється.

У сьогоднішньому короткому посібнику я познайомлю вас з автоматизацією SSH за допомогою двох популярних бібліотек Python: Параміко і Нетміко. Ми створимо прості скрипти python, використовуючи дві бібліотеки для автоматизації SSH та взаємодії з мережевими пристроями.

Я обираю такий підхід, оскільки керівництво, головним чином зосереджене на відмінностях між Параміко та Нетміко, було б занадто коротким - простої таблиці вистачило б - і не було б конкретного. Вибравши такий підхід, ви зможете краще експериментувати з ними та бачити, хто що і як робить.

Давайте розпочнемо:

Що таке Параміко?

Офіційний веб-сайт визначає Параміко таким чином:

“Параміко - це Пітон (2.7, 3.4+) реалізація протоколу SSHv2, що забезпечує функціональність як клієнта, так і сервера."

Сподіваюся, це було зрозуміло. В основі - це означає Paramiko - це бібліотека python для взаємодії з SSH.

Зараз:

Коли ми хочемо увійти на сервер, ми знаємо, що переходимо до терміналу-cmd, xterm, MobaXterm або просто до Gnome Terminal-login, а потім виконуємо команди.

Подивимось, як Параміко може в цьому допомогти.

Як встановити Paramiko

Щоб використовувати Paramiko, нам потрібно встановити його. На вашій машині повинен бути встановлений Python - бажано python 2. За допомогою pip введіть команду нижче, щоб встановити Paramiko.

sudo pip встановити Paramiko
Python -m pip встановлює paramiko

Якщо ви хочете побудувати з джерела, зверніться до офіційного сховища Paramiko GitHub, використовуючи наданий ресурс:

https: // github.com / paramiko / paramiko

Підключення до SSH за допомогою Paramiko

Для підключення до SSH за допомогою Paramiko ми використовуємо метод connect (), який вимагає параметр імені хосту - він також підтримує інші параметри, але оскільки ми їх не потребуємо, наразі ми можемо їх ігнорувати.

підключити (ім'я хоста, порт = 22, ім'я користувача = Немає, пароль = Немає, pkey = Немає, ім'я_файлу ключа = Немає, час очікування = Немає, allow_agent = True, look_for_keys = True, стиснути = False, sock = Немає, 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)

Використовуючи цю функцію, яка доступна у paramiko. Клієнт.SSHClient.connect (), підключається до вказаного імені хосту та автентифікує його. Цільова система перевіряється за наявними локальними системними ключами (надійні).

Якщо у вас є конкретний файл хосту, ви можете скористатися методом load_host_keys () і встановити клієнт Paramiko SSH, щоб додати будь-який невідомий хост до paramiko.AutoAddPolicy (). Якщо ви використовуєте клієнта в ненадійних системах, уникайте використання paramiko.AutoAddPolicy.

Підключення SSH за допомогою пароля

За методом connect ми бачимо, що у нас є параметри імені користувача та пароля, які ми можемо використовувати для підключення до системи. Розгляньте наведений нижче код для підключення SSH за допомогою імені користувача та пароля.

від paramiko import util, SSHClient, AutoAddPolicy
клієнт = SSHClient ()
клієнт.load_system_host_keys ()
клієнт.load_host_keys ("/ home / linuxhint /.ssh / known_hosts ")
клієнт.set_missing_host_key_policy (AutoAddPolicy ())
клієнт.підключити (ім'я хоста = "linuxhint.com ", ім'я користувача =" адміністратор ", пароль =" AdminPassword ")
клієнт.закрити ()

Якщо під час імпортування класу Paramiko SSHClient виникають проблеми, зверніться до наступного запитання щодо stackoverflow:

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

Підключення SSH через ключ

Як ми всі знаємо, підключення SSH за допомогою ключа є більш безпечним, ніж використання необробленого пароля. Paramiko це знає і дозволяє передавати файл ключа і підключатися до цільової системи.

Розгляньте наведений нижче код.

від paramiko import SSHClient
від paramiko AutoAddPolicy
клієнт = SSHClient ()
клієнт.load_system_host_keys ()
клієнт.load_host_keys ('/ home / linuxhint /.ssh / known_hosts ')
клієнт.set_missing_host_key_policy (AutoAddPolicy ())
клієнт.connect ('linuxhint.com ', ім'я користувача =' адміністратор ', ім'я_файлу =' ssh_key.pem ', passphrase =' AdminPassphrase ')
клієнт.закрити ()

Запуск команд через SSH

Отримавши доступ до системи за допомогою SSH (через Paramiko), ви можете виконати низку команд. Розглянемо такий фрагмент коду:

клієнт = SSHClient ()
клієнт.load_system_host_keys ()
клієнт.connect ('linuxhint.com ')
stdin, stdout, stderr = клієнт.exec_command ('баш')
stdin.закрити ()
stdout.закрити ()
stderr.закрити ()
клієнт.закрити ()

На цьому етапі ви знаєте, як використовувати бібліотеку Paramiko для автоматизації SSH. Як ви можете собі уявити, це не вичерпний посібник Paramiko, і ми не заглиблюємось у подробиці, пов’язані з тим, що робить інструмент. Метою було показати вам його реалізацію.

Для отримання додаткової інформації, будь ласка, зверніться до більш вичерпних матеріалів, таких як:

https: // docs.параміко.org / en / stable /
https: // github.com / paramiko / paramiko

Що таке Netmiko?

Netmiko дуже популярний і схожий на Paramiko з декількома суттєвими відмінностями:

Працюючи в реальних мережах, ви зустрінете різні моделі пристроїв. Таким чином, вам потрібен надійний інструмент, який може допомогти вам автоматизувати процес. У деяких випадках ви не можете використовувати Paramiko через обмеження підтримки пристроїв, що призводить до лагів та збоїв - ви можете перевірити підтримувані пристрої в офіційній документації. Це також значно повільніше, ніж Netmiko.

Paramiko - це більше загальний модуль SSH, який ви можете використовувати для автоматизації конкретних завдань SSH. На відміну від цього, Netmiko є ширшим і добре оптимізованим для управління мережевими пристроями, такими як комутатори та маршрутизатори.

Абстракція - ще одна перевага використання Netmiko. Netmiko надає просту функцію, яку можна використовувати для відключення підкачки. Наприклад, результатом сеансу SSH може бути більше однієї сторінки. Використовуючи звичайні сеанси SSH, вам доведеться додати простір, подібний до вводу, щоб показати наступну сторінку. Netmiko надає вам спосіб це замінити.

Перевагами Netmiko перед Paramiko є:

Як встановити Netmiko

Встановити Netmiko також відносно просто:

Все, що вам потрібно зробити, це переконатися, що у вашій системі встановлені Python і pip, і виконати команду:

pip встановити netmiko - -
python -m pip встановити netmiko

Підключення до SSH за допомогою Netmiko

Підключення до сеансів SSH пристрою за допомогою Netmiko дуже просте. Пам'ятайте, що Netmiko більш оптимізований для таких пристроїв, як маршрутизатори, а не загальний SSH.

Розглянемо фрагмент коду нижче.

# імпорт модулів
від імпорту netmiko ConnectHandler
# інформація про пристрій у форматі словника.
device_config =
“Device_type”: “cisco_ios”,
“Ip”: “192.168.0.1 ”,
“Username”: “адміністратор”,
“Пароль”: “пароль”,
“Secret”: “пароль”

з'єднання = ConnectHandler (** device_config)

Використовуючи простий код вище, ви матимете SSH-з’єднання з пристроєм. Ви також можете передавати інформацію про пристрій безпосередньо, замість того, щоб передавати її у словник.

Отримавши сеанс SSH, ви можете виконувати команди за допомогою функції send_command (). До функцій, які підтримує netmiko, належать:

Загальновживані методи Netmiko:

Як вже згадувалося раніше, це не керівництво по використанню Netmiko, а просте керівництво тим, що таке Netmiko та Paramiko. Перегляньте офіційну документацію для отримання додаткової інформації.

https: // github.com / ktbyers / netmiko

Висновок

У цьому короткому посібнику ми обговорили, як використовувати paramiko для загальних з'єднань SSH та управління мережевими пристроями Netmiko, ілюструючи відмінності між ними.

Прийти до висновку:

Параміко Нетміко
Корисно для загального використання ssh Найбільш корисний для конфігурації мережевих пристроїв.
Обмежена підтримка широкого кола мережевих пристроїв. Підтримує широкий спектр мережевих пристроїв.
AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...
Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...