در این دوره آموزشی به کاربردهای زبان پایتون برای مهندسین شبکه می پردازم و اسکریپتهایی را معرفی می کنم که از طریق آنها مهندسین و ادمین های شبکه امکان خودکار سازی فرآیند نگهداشت شبکه را خواهند داشت.

در اولین دوره آموزشی پایتون (Python) برای مهندسین شبکه اسکریپت اتصال SSH به تجهیزات سیسکو را براتون معرفی میکنم و اینکه چگونه میتویند یک تجهیزات سیسکو را از طریق پایتون پیکربندی کنید. حتما تا حالا براتون پیش اومده که بخواین مثلا به تمام سوییچ های شبکه سازمان با SSH وصل بشید و با زدن یک کامند روی همشون یک قابلیت رو روی آنها پیکربندی کنید (مثلا تنظیم SNMP و یا Syslog روی همه سوییچ ها برای ارسال بسته ها به سرور مانیتورینگ) و یا اینکه به دلایل امنیتی بخواین با اجرای یک کامند، یک قابلیت یا سرویس رو روی همشون غیر فعال کنید ( مثلا no cdp run ) اینجور کارهای تکراری و خسته کننده را میتوان از طریق اسکریپت های پایتون انجام داد به عنوان مثال با استفاده از اسکریپت پایتون ضمیمه، در کد زیر :

#------------------------------------------------- Get User and Password of Switch -----------------------------------
username=input("\n\nUsername:  ")
password=getpass(prompt='Password:  ')
enable_pass=getpass(prompt='Enable Password:  ')
#------------------------------------------------- Read Switch List from file -----------------------------------
with open('Switch_list.txt') as f:
 devices_list = f.read().splitlines()
 for device in devices_list:
  DVIP = device
  print (Style.DIM + Fore.WHITE + "\n-------------------------------------------------------")
  print (Style.DIM + Fore.WHITE + "\nConnecting to " + DVIP + " ..." + Style.RESET_ALL)
    
#------------------------------------------------- SSH to Device -----------------------------------
  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    #IPv4 , TCP Connection
  result = sock.connect_ex((DVIP,22))
  if result != 0:
   print (Style.DIM + Fore.YELLOW + " SSH Port on Switch " + DVIP + " is close." + Style.RESET_ALL)
   continue
  sock.close()

  try:
   remote_conn_pre=paramiko.SSHClient()
   remote_conn_pre.set_missing_host_key_policy(paramiko.AutoAddPolicy())
   remote_conn_pre.connect(DVIP,username=username,password=password,look_for_keys=False,allow_agent=False)
   print(Style.DIM + Fore.CYAN + " SSH Connection to %s established."  %DVIP + Style.RESET_ALL)
 
  except Exception as e:
   print(Style.BRIGHT + Fore.YELLOW + " SSH Connection to %s  : Authentication Failed."  %DVIP + Style.RESET_ALL)
   continue
#------------------------------------------------- Configuration -----------------------------------
  remote_conn.send('enable\n')
  remote_conn.send(enable_pass+'\n')
  remote_conn.send('configure terminal\n')
  remote_conn.send('no cdp run\n')
  remote_conn.send('logging 192.168.1.100\n')
  remote_conn.send('snmp-server host 192.168.1.100\n')
  remote_conn.send('exit\n')
  remote_conn.send('write\n')
  print(Style.DIM + Fore.GREEN + " %s Configuration has been saved."  %DVIP + Style.RESET_ALL)
#------------------------------------------------- Close SSH -----------------------------------
  remote_conn.close()
  print(Style.DIM + Fore.CYAN + " SSH Connection to %s was closed."  %DVIP + Style.RESET_ALL)

میتونید یک فایل متنی شامل IP سوییچ ها (یا روترها) رو بخونید و اسکریپت به تک تک سوییچ ها SSH  زده و دستورات شما را اجرا کرده و در نهایت پیکربندی انجام شده را بر روی همه تجهیزات  Write  و ارتباط SSH  را قطع میکند.

توضیح بیشتر اینکه برای اجرای اسکریپت فوق ابتدا باید پایتون 3 را دانلود و نصب کنید و از خط فرمان ، با دستور زیر اسکریپت را اجرا کنید
C:\>python cisco-config.py
در این دوره آموزشی فرض بر این است که شما دوره مقدماتی پایتون رو پشت سر گذاشتید و با مفاهیم و Syntax  زبان پایتون آشنایی دارید.

منبع:توسینسو