Python for Network Automation

پایتون (Python) ویژه کودکان

در شبکه های کامپیوتری عموماً ادمین های شبکه با مجموعه ای از فعالیت های تکراری روبرو هستند که این فعالیت موجب می شوند :

  1.  زمان ارزشمند ادمین شبکه صرف امور تکراری شود. 
  2. احتمال خطای انسانی افزایش یابد.
  3. فرآیند تحویل پروژه ها با کندی همراه شود.

به عنوان مثال فرض کنید ادمین شبکه مجبور به انجام یک پیکربندی مشابه در 200 دستگاه روتر که در شبکه WAN شرکت یا موسسه وجود دارد شود. این فرآیند علاوه بر زمان بر بودن می تواند همراه با خطاهای انسانی باشد که منجر به از دست رفتن دسترسی ادمین به روتر یا قطعی ارتباط ایجاد شده توسط روتر گردد.

به منظور تسهیل این امر برخی از شرکت های مطرح در حوزه تجهیزات شبکه اقدام به ایجاد برخی نرم افزارها نموده اند به عنوان نمونه شرکت سیسکو از نرم افزار Cisco Prime Infrastructure به منظور مدیریت، پیکربندی و اتوماسیون مجموعه وظایف موردنیاز در تجهیزات این شرکت استفاده نموده است. این راهکار با وجود مزیت هایی که دارد، با توجه به هزینه تامین نرم افزار و لایسنس های موردنیاز برای آنها برای هر سازمان یا شرکتی قابل استفاده نمی باشد.

از این رو از زبان برنامه نویسی Python با مجموعه توانایی ها این زبان برنامه نویسی، به عنوان یک ابزار به منظور ایجاد اسکریپت هایی که منجر به اتوماتیک شدن وظایف گردد می توان استفاده نمود.

در کنار مجموعه دستورات این زبان برنامه نویسی که در مقایسه با سایر زبان های برنامه نویسی ساختار بسیار ساده ای دارد، مجموعه از ماژول ها و پکیج های ایجاد شده که قدرت برنامه نویس را در نوشتن برنامه های کاربردی افزایش می دهد.

مدت دوره: 30 ساعت

پيش نياز: آشنایی با مفاهیم شبکه – دوره CCNA

مخاطب:

  • مهندسان و متخصصان شبکه   
  • مهندسان نرم افزار و برنامه نویسان

اهداف دوره:

در انتهای اين دوره دانشجويان قادر خواهند بود:

  • آشنایی با زبان برنامه نویسی پایتون
  • آشنایی با ماژول های پایتون که امکان دسترسی به تجهیزات شبکه را فراهم می نمایند
  • آشنایی با محیط های شبیه سازی تجهیزات
  • ایجاد برنامه هایی به منظور اتوماتیک نمودن فرآیندهای تکراری و زمان بر

سرفصل دوره:

1. Introduction to Python

            1.1. Python Language Overview

            1.2. Operating System

            1.3. Installing Python on Windows

            1.1. Understanding Python Syntax

            1.2. Data Types and Variables

            1.3. Python Operators

            1.4. Input and Output

            1.5. Flow control with Conditionals and Loops

2. Python Functions, Classes and Modules

            2.1. Python Functions

            2.2. Python Classes

            2.3. Python Modules

3. Working with Data in Python

            3.1. File Inputs and Outputs

            3.2. Parsing Data (CSV, JSON, XML, YAML)

            3.3. Error Handling

4. Constructing a Virtual Lab

            4.1. Cisco VIRL

            4.2. Cisco DENNET Sandbox

            4.3. dCloud

            4.4. GNS3

            4.5. VMWare

            4.6. Multi-Vendor Network Emulation Environment

                        4.6.1. EVE-NG

                        4.6.2. Juniper VMX

                        4.6.3. vSRX

                        4.6.4. vFTD

                        4.6.5. vFMC

                        4.6.6. Cisco Router 1000v

5. Python Libraries (Modules) for Low-Level Network Device Interactions

            5.1. Pexpect Library

            5.2. Ncclient Library

            5.3. Telnetlib Library

            5.4. Paramiko Library

            5.5. Netmiko Library

            5.6. NAPALM Library

            5.7. Nornir Library

            5.8. PySNMP Library

            5.9. APIs

6. The Python Automation Framework: Ansible Basics

            6.1. A more declarative framework

            6.2. The control node installation

            6.3. The advantage of Ansible

                        6.3.1. Agentless

                        6.3.2. Idempotent

                        6.3.3. Simple and extensible

                        6.3.4. Network vendor support

            6.4. The Ansible architecture

                        6.4.1. YAML

                        6.4.2. Inventories

                        6.4.3. Variables                        

6.4.4. Template with Jinja2