توضیحات
سرفصلهای دوره: اتوماسیون شبکه با پایتون و کتابخانه 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 است.








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