python網絡自動化運維paramiko實驗(EVE-NG+pycharm)


運行環境:

       物理機:win10 1903

       網絡設備:EVE-NG模擬器上運行思科路由器

       網絡設備OS版本:cisco ios(versions 15.6)

       python環境:pycharm 3.5

       python解析器版本:3.8

實驗准備:

  1. 先安裝paramiko模塊,請自行搜索
  2. 環境搭建可以參考我之前的文章:https://www.cnblogs.com/my-nas/p/15533750.htm

實驗目的:給R4上的loopback 0口配置地址。

實驗括撲:

  

 

 

 

下面的代碼來自《網絡工程師的python之路》這本書:

import paramiko
import time

ip = '192.168.142.135'
port = '22' #定義ip、端口、用戶名
username = 'ccie'
password = 'cisco'

ssh_client = paramiko.SSHClient() #調用paramiko的SSHClient()方法,將其賦值給變量ssh_client
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#默認情況下,paramiko會拒絕所有未知的SSH公鑰(publickey),使用這行代碼讓paramiko接受SSH服務端
  #(R4)提供的公鑰,這是任何時候使用paramiko都需要用到的標准配置
ssh_client.connect(hostname=ip,username=username,password=password)
print ('Sucessfully connected to ',ip)
#調用paramiko.SSHClient()的connect()函數進行SSH登錄。包含基礎的用戶名、密碼、ip和port
#並在登錄成功后進行提示。

command = ssh_client.invoke_shell() #登錄成功后,喚醒cisco的shell(IOS命令行),並將其賦值於command
#下面使用invoke_shell()的command()函數來對R4“發號施令”。
command.send('conf t\n')
command.send('int lo1\n')
command.send('ip add 4.4.4.4 255.255.255.255\n')
command.send('end\n')
command.send('wr\n')

time.sleep(2)
#因為python是一次性執行所有命令的,沒有等待設備返回的時間,會導致回顯內容不全的問題。這里手動將python休眠2s
output = command.recv(65535) #這里表示截取65535個字符的回顯內容,也是paramiko一次截取的最大回顯內容數。
print (output.decode('ascii')) #paramiko的回顯內容格式為字節型字符串,需要用decode('ascii')解析為ASCII編碼,否則會很難看。
ssh_client.close #配置完成后,使用close方法退出SSH。

 實驗效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM