Network Automation with Python Nornir Part1

ریال۱۶.۰۰۰.۰۰۰
_majid_asadpoor

در این دوره آموزش «اتوماسیون شبکه با پایتون و کتابخانه Nornir»، با مقایسه ابزارهای اتوماسیون، آماده‌سازی لابراتوار و ساخت فایل‌های Inventory شروع می‌کنید و سپس یاد می‌گیرید چگونه با پلاگین‌هایی مانند Scrapli، Netmiko و NAPALM دستورات و پیکربندی‌ها را به تجهیزات ارسال کنید. روش‌هایی برای امن‌سازی رمز عبور، اجرای دستورات تعاملی، استفاده از فیلترینگ، و استخراج خروجی‌های ساختار‌یافته با پارسرهایی مانند TextFSM و Cisco Genie آموزش داده می‌شود. در ادامه با Templateهای Jinja2 برای ساخت کانفیگ‌های پویا و در نهایت با استفاده از نرم‌افزار Netbox به‌عنوان منبع داده مرکزی، اتوماسیون را حرفه‌ای‌تر و مقیاس‌پذیرتر پیاده‌سازی خواهید کرد.

Category:

توضیحات

سرفصل‌های دوره: اتوماسیون شبکه با پایتون و کتابخانه Nornir

1- مقایسه ابزارهای اتوماسیون شبکه

در این بخش، انواع ابزارهای اتوماسیون شبکه بررسی و مقایسه می‌شوند. این ابزارها به دو دسته اصلی تقسیم می‌شوند: ابزارهای مبتنی بر زبان برنامه‌نویسی پایتون و ابزارهایی با زبان اختصاصی. ابزارهای پایتونی نیز به دو زیرگروه تقسیم می‌شوند: ابزارهایی که با ارسال دستورات به تجهیزات شبکه و دریافت خروجی کار می‌کنند و ابزارهایی که به مدل YANG وابسته هستند. در این بخش، دلیل انتخاب کتابخانه Nornir برای اتوماسیون شبکه در طول دوره تشریح می‌شود.


2- آماده‌سازی آزمایشگاه اتوماسیون شبکه

این بخش به نحوه آماده‌سازی آزمایشگاه برای پیاده‌سازی اسکریپت‌های اتوماسیون شبکه اختصاص دارد و مراحل لازم برای راه‌اندازی محیط آزمایش به طور کامل توضیح داده می‌شود.


3- آماده‌سازی فایل‌های Inventory و Config

کتابخانه Nornir امکان مدیریت لیست تجهیزات شبکه و ویژگی‌های آن‌ها (مانند آدرس، نام کاربری و رمز عبور) را از طریق فایل Inventory فراهم می‌کند. این قابلیت نیاز به افزودن این اطلاعات در کد را حذف می‌کند. همچنین، امکان مدیریت همزمان چندین دستگاه فراهم است. در این بخش، نحوه ایجاد و مدیریت فایل‌های Inventory و Config تشریح می‌شود.


4- ارسال دستورات با پلاگین Scrapli

در این بخش، با استفاده از پلاگین Scrapli، نحوه ارسال دستورات غیرکانفیگی (مانند show ip interface brief و show version) بررسی می‌شود. تفاوت توابع ارسال دستورات کانفیگی و غیرکانفیگی در کتابخانه‌هایی مانند Scrapli، Netmiko و NAPALM نیز توضیح داده خواهد شد.


5- دسترسی به داده‌های Inventory

برای ارسال تنظیمات به تجهیزات شبکه، داده‌هایی مانند router-id، AS-number و community معمولاً در فایل‌های جداگانه نگهداری می‌شوند. کتابخانه Nornir امکان ذخیره و دسترسی به این داده‌ها را از طریق Inventory فراهم می‌کند. در این بخش، دو روش دسترسی به داده‌های کانفیگ برای ارسال تنظیمات به تجهیزات آموزش داده می‌شود.


6- ارسال تنظیمات با پلاگین Scrapli

این بخش به بررسی توابع ارسال دستورات کانفیگی در پلاگین Scrapli اختصاص دارد. توابع send_config، send_configs و send_configs_from_file معرفی می‌شوند که به ترتیب برای ارسال یک دستور، چندین دستور در قالب لیست، و دستورات از یک فایل استفاده می‌شوند.


7- ارسال دستورات تعاملی با پلاگین Scrapli

پلاگین Scrapli امکان ارسال دستورات تعاملی را فراهم می‌کند. به عنوان مثال، برای تهیه نسخه پشتیبان از تنظیمات تجهیزات شبکه و ذخیره آن در سرور ریموت، می‌توان به پرس‌وجوهای تعاملی (مانند نام فایل مقصد یا آدرس) پاسخ خودکار داد. این بخش نحوه خودکارسازی این فرآیند را نشان می‌دهد.


8- ارسال دستورات و تنظیمات با پلاگین Netmiko

پلاگین Netmiko به دلیل پشتیبانی گسترده از تجهیزات شبکه محبوبیت زیادی دارد. این بخش به بررسی سه عملکرد اصلی این پلاگین می‌پردازد: ارسال دستورات غیرکانفیگی، ارسال تنظیمات جدید، و ذخیره‌سازی تنظیمات نهایی روی تجهیزات.


9- ارسال دستورات با پلاگین NAPALM

پلاگین NAPALM با ارائه دستورات مستقل از تولیدکننده تجهیزات (Vendor-Agnostic) و خروجی‌های ساختارمند، استخراج اطلاعات را ساده‌تر می‌کند. در این بخش، نحوه ارسال دستورات با این پلاگین و مزایای آن نسبت به Scrapli و Netmiko بررسی می‌شود.


10- پردازش خروجی‌های ساختارمند NAPALM

پلاگین NAPALM خروجی‌های ساختارمند ارائه می‌دهد که استخراج اطلاعات را بدون نیاز به پارسرهای خارجی یا Regular Expression ساده می‌کند. این بخش به نحوه پردازش این خروجی‌ها و کاربردهای آن می‌پردازد.


11- ارسال تنظیمات با پلاگین NAPALM

این بخش به نحوه ارسال تنظیمات کانفیگی با پلاگین NAPALM اختصاص دارد و قابلیت‌های Merge و Replace تنظیمات را که در Scrapli و Netmiko وجود ندارد، بررسی می‌کند.


12- حذف رمزهای متنی ساده از فایل Inventory

ذخیره رمزهای تجهیزات در فایل Inventory به صورت متنی ساده از نظر امنیتی مناسب نیست. در این بخش، سه روش برای رفع این مشکل معرفی می‌شود: استفاده از ماژول getpass برای دریافت رمز از کاربر، استفاده از sys.argv برای ورود رمز هنگام اجرای اسکریپت، و استفاده از ابزار رمزنگاری GPG برای ذخیره رمز به صورت کدشده.


13- استفاده از احراز هویت کلید عمومی برای دسترسی بدون رمز

این بخش به بررسی روش احراز هویت با کلید عمومی (Public Key Authentication) برای اتصال به تجهیزات بدون نیاز به رمز متنی ساده می‌پردازد. این روش به عنوان جایگزینی امن برای روش‌های قبلی معرفی می‌شود.


14- استفاده از فیلترینگ برای اجرای دستورات روی گروهی از تجهیزات

در این بخش، نحوه استفاده از قابلیت فیلترینگ در Nornir برای اجرای دستورات روی گروه خاصی از تجهیزات به جای کل Inventory آموزش داده می‌شود. روش‌های ساده و پیشرفته فیلترینگ بررسی خواهند شد.


15- استفاده از پارسر TextFSM برای تبدیل خروجی به داده‌های ساختارمند

برای استخراج اطلاعات خاص از خروجی دستورات شبکه، معمولاً نیاز به Regular Expression است. اما با استفاده از قالب‌های آماده NTC و کتابخانه Google TextFSM، می‌توان خروجی دستورات تجهیزات مختلف را به داده‌های ساختارمند تبدیل کرد. این بخش نحوه استفاده از این ابزار را نشان می‌دهد.


16- استفاده از پارسر Genie برای تبدیل خروجی به داده‌های ساختارمند

پارسر Genie، محصول شرکت سیسکو، مانند TextFSM برای تبدیل خروجی دستورات به داده‌های ساختارمند استفاده می‌شود. این بخش به مقایسه این پارسر با TextFSM و نحوه استفاده از آن می‌پردازد.


17- استفاده از قالب Jinja2 برای ارسال تنظیمات

در اتوماسیون شبکه، معمولاً از سه جزء استفاده می‌شود: فایل داده‌ها، فایل قالب (Template)، و کد اصلی. فایل قالب Jinja2 به جای داده‌های متغیر (مانند تنظیمات هر دستگاه) از متغیرها استفاده می‌کند. این بخش به معرفی و استفاده از قالب‌های ساده Jinja2 می‌پردازد.


18- استفاده پیشرفته از قالب Jinja2

این بخش به ادامه مبحث قالب‌های Jinja2 پرداخته و قابلیت‌های پیچیده‌تر این ابزار را برای ایجاد تنظیمات پویا و مدیریت پیشرفته‌تر اتوماسیون شبکه بررسی می‌کند.


19- نصب و پیکربندی اولیه Netbox

نرم‌افزار Netbox برای مستندسازی شبکه و دیتاسنتر استفاده می‌شود و امکان خواندن داده‌های Inventory و تنظیمات از طریق API را فراهم می‌کند. این بخش به نصب و پیکربندی اولیه این نرم‌افزار اختصاص دارد.


20- استفاده از Netbox برای Inventory در Nornir

در این بخش، نحوه خواندن اطلاعات Inventory و داده‌های تنظیمات از Netbox با استفاده از کتابخانه Nornir آموزش داده می‌شود. این روش جایگزینی برای استفاده از فایل‌های hosts، group و default است.

مدرس

مجید اسدپور

عضو سابق هیات علمی دانشگاه مازندران مولف 3 کتاب در زمینه شبکه های کامپیوتری تولید بیش از 50 دوره آموزش ویدئویی به زبان فارسی تولید بیش از 10 دوره آموزش ویدئویی به زبان انگلیسی بیش از 20 سال سابقه در زمینه شبکه و امنیت بیش از 10 سال سابقه تدریس مدرس دوره های سیسکو در تخصص های مدرس دوره های CCIE R&S, CCIE SP, CCIE Security, CCIE DC و اتوماسیون شبکه
_majid_asadpoor

دیدگاهها

هیچ دیدگاهی برای این محصول نوشته نشده است.

اولین نفری باشید که دیدگاهی را ارسال می کنید برای “Network Automation with Python Nornir Part1”

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


محصولات مشابه