لب عملی: پیکربندی Guestshell برای اسکریپت‌نویسی Python روی خود دستگاه

این لب عملی کانتینر Guestshell را روی یک روتر فعال می‌کند، یک پکیج Python درونش نصب می‌کند، و یک اسکریپت ساده که داده اینترفیس زنده را از CLI IOS می‌خواند اجرا می‌کند، و برنامه‌نویسی روی-خود-دستگاه متمایز از اتوماسیون خارجی NETCONF/RESTCONF پوشش‌داده‌شده در لب‌های قبلی را نشان می‌دهد.

کانتینر Guestshellاسکریپت‌نویسی Python روی-خود-دستگاهماژول Python در cli

~3 دقیقه مطالعه · آخرین به‌روزرسانی ۴ مهر ۱۴۰۵

هدف لب

فعال‌کردن کانتینر لینوکسی Guestshell روی یک روتر، تأیید در‌دسترس‌بودن Python درونش، نصب یک پکیج با استفاده از مدیر پکیج خود کانتینر، و اجرای یک اسکریپت Python با استفاده از ماژول cli برای پرس‌وجوی اطلاعات اینترفیس زنده مستقیماً از درون همان دستگاه.

هدف لب (چرا مهم است)

NETCONF و RESTCONF، پوشش‌داده‌شده در لب‌های قبلی، اجازه می‌دهند یک ایستگاه مدیریتی خارجی یک دستگاه را از راه دور اتوماسیون کند. Guestshell به‌جای آن مستقیماً روی خود روتر اجرا می‌شود، و یک کانتینر لینوکسی ایزوله فراهم می‌کند جایی که اسکریپت‌های سفارشی می‌توانند محلی اجرا شوند — مفید برای اتوماسیون روی-خود-دستگاه که نیاز دارد بلافاصله به شرایط محلی واکنش نشان دهد بدون وابستگی به اتصال شبکه‌ای به یک کنترل‌کننده خارجی.

توپولوژی لب

R1 ---- Gi0/0: 192.168.253.1/24، Gi0/1: 10.5.5.1/30

هدف: یک اسکریپت درون خود R1 اجرا کن که این
اینترفیس‌ها را می‌خواند و گزارش می‌دهد، بدون
هیچ سیستم خارجی درگیر

وظیفه ۱: فعال‌کردن Guestshell

کانتینر Guestshell را روی روتر فعال کن.

وظیفه ۲: دسترسی به Guestshell و تأیید Python

وارد Guestshell شو و تأیید کن Python 3 در‌دسترس است.

وظیفه ۳: نوشتن یک اسکریپت Python با استفاده از ماژول cli

یک اسکریپت بنویس که از ماژول Python فراهم‌شده-توسط-IOS به نام cli برای اجرای یک دستور show و تجزیه خروجی‌اش استفاده می‌کند.

وظیفه ۴: اجرای اسکریپت و تأیید خروجی

اسکریپت را اجرا کن و تأیید کن به‌درستی اطلاعات اینترفیس کشیده‌شده از وضعیت زنده دستگاه را گزارش می‌دهد.

وظیفه ۵: تأیید اجرای کاملاً روی-خود-دستگاه این

تأیید کن هیچ اتصال شبکه خارجی‌ای برای کارکردن اسکریپت مورد نیاز نبود.

راه‌حل و تأیید

R1(config)# iox
R1(config)# exit
R1# guestshell enable

-- iox زیرساخت کانتینر زیربنایی را فعال
-- می‌کند؛ guestshell enable واقعاً خود
-- کانتینر Guestshell را فعال می‌کند

R1# guestshell

[guestshell@guestshell ~]$ python3 --version
Python 3.6.8
-- تأیید می‌کند یک مفسر کامل Python درون
-- کانتینر در‌دسترس است، کاملاً جدا از فضای
-- فرآیند IOS خود روتر

[guestshell@guestshell ~]$ cat > check_interfaces.py << 'EOF'
from cli import cli

output = cli("show ip interface brief")
print("Interface status from R1 itself:")
print(output)
EOF

-- ماژول cli به‌طور خاص توسط محیط Guestshell
-- IOS فراهم می‌شود، و اجازه می‌دهد کد Python
-- دستورات IOS را اجرا کند و خروجی‌شان را
-- مستقیماً بگیرد، بدون SSH یا هر اتصال خارجی
-- به خودش

[guestshell@guestshell ~]$ python3 check_interfaces.py

Interface status from R1 itself:
Interface              IP-Address      OK? Method Status    Protocol
GigabitEthernet0/0     192.168.253.1   YES manual up         up
GigabitEthernet0/1     10.5.5.1        YES manual up         up
-- اسکریپت با موفقیت وضعیت اینترفیس زنده را با
-- فراخوانی مستقیم به موتور CLI خود IOS از
-- درون کانتینر بازیابی کرد

-- قطع‌کردن کاملاً کابل‌های شبکه روتر و اجرای
-- مجدد اسکریپت از درون یک جلسه Guestshell موجود:

[guestshell@guestshell ~]$ python3 check_interfaces.py

Interface status from R1 itself:
Interface              IP-Address      OK? Method Status         Protocol
GigabitEthernet0/0     192.168.253.1   YES manual administratively down  down
GigabitEthernet0/1     10.5.5.1        YES manual administratively down  down
-- اسکریپت همچنان اجرا می‌شود و به‌درستی
-- گزارش می‌دهد (اکنون اینترفیس‌ها را down
-- نشان می‌دهد، چون فیزیکاً قطع‌اند) -- تأیید
-- می‌کند کل عملیات روی-خود-دستگاه رخ می‌دهد و
-- هرگز به هیچ مسیر شبکه خارجی‌ای وابسته نبود

نکته کلیدی

ماژول Python در cli در Guestshell مستقیماً به موتور اجرای دستور خود روتر از درون یک کانتینر لینوکسی ایزوله در حال اجرا روی همان دستگاه فیزیکی پل می‌زند — این اساساً متفاوت از اتوماسیون NETCONF یا RESTCONF پوشش‌داده‌شده در لب‌های قبلی است، که نیازمند یک مسیر شبکه مدیریتی کارآمد به یک ایستگاه خارجی هستند، که Guestshell را به انتخاب درست به‌طور خاص برای اتوماسیون محلی و خودمحتوا که باید حتی در طول مسائل اتصال شبکه گسترده‌تر عملکردی بماند تبدیل می‌کند.

نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

لب عملی: پیکربندی مسیریابی Stub در EIGRP

این لب عملی یک روتر شعبه را به‌عنوان یک stub در EIGRP پیکربندی می‌کند، و تأیید می‌کند فقط مسیرهای متصل و خلاصه خودش را تبلیغ می‌کند در حالی که روتر hub به‌درستی از پرس‌وجوکردن stub در طول یک تغییر توپولوژی در جای دیگری از شبکه اجتناب می‌کند.

ادامه

لب عملی: پیکربندی حالت Named در EIGRP

این لب عملی یک پیکربندی EIGRP کلاسیک موجود را به حالت named EIGRP بازپیکربندی می‌کند، و عبارات network و پیکربندی خاص-اینترفیس را در یک سلسله‌مراتب address-family ساختاریافته‌تر سازمان‌دهی می‌کند، و تعادل عملکردی با سبک پیکربندی کلاسیک استفاده‌شده در سراسر لب‌های EIGRP قبلی این مجموعه را تأیید می‌کند.

ادامه

لب عملی: پیکربندی ERSPAN در سراسر یک شبکه مسیریابی‌شده

این لب عملی Encapsulated RSPAN (ERSPAN) را برای آینه‌کردن ترافیک در سراسر یک شبکه مسیریابی‌شده-لایه-۳ به‌جای یک ترانک لایه ۲ واحد پیکربندی می‌کند، و مفهوم RSPAN از لب قبلی را فراتر از مرزهای یک VLAN یا دامنه سوئیچ‌شده واحد گسترش می‌دهد.

ادامه

لب عملی: پیکربندی RSPAN در سراسر سوئیچ‌ها

این لب عملی Remote SPAN (RSPAN) را با استفاده از یک VLAN RSPAN اختصاصی حمل‌شده در سراسر یک ترانک پیکربندی می‌کند، و اجازه می‌دهد ترافیک آینه‌شده روی یک سوئیچ توسط یک دستگاه گرفتن متصل به یک سوئیچ کاملاً متفاوت نظارت شود، و مفهوم SPAN محلی پوشش‌داده‌شده در یک لب قبلی را در سراسر شبکه گسترش می‌دهد.

ادامه

لب عملی: پیکربندی In-Service Software Upgrade (ISSU) روی یک Stack

این لب عملی یک In-Service Software Upgrade را در سراسر یک stack StackWise انجام می‌دهد، و ایمیج IOS هر عضو را یکی‌یکی ارتقا می‌دهد در حالی که stack در سراسر آن به فوروارد‌کردن ترافیک ادامه می‌دهد، و صفر خرابی را در مقایسه با رویکرد مخل reload استفاده‌شده در لب‌های ارتقای IOS قبلی تأیید می‌کند.

ادامه

لب عملی: پیکربندی Stacking سنتی StackWise در Catalyst

این لب عملی stacking سنتی Catalyst (StackWise) را در سراسر سه سوئیچ با استفاده از کابل‌های stack پیکربندی می‌کند، و نیازمندی تک-لایه و مجاورت فیزیکی‌اش را با جفت StackWise Virtual پوشش‌داده‌شده در لب قبلی که اجازه می‌دهد سوئیچ‌ها بسیار دورتر از هم قرار بگیرند مقایسه می‌کند.

ادامه