Python Exscriptライブラリを使用して、SSH経由でCiscoおよびHuaweiの機器を操作する

Pythonアプリケーションでは、タスクはネットワーク機器からデータを受信し、SSHを介してリモートで構成することでした。 Paramikoを使用するか、自転車を発明してそれに基づいたExscriptライブラリを使用することはできません。 カットの下-チームから情報を接続および受信するためのコード例。 Exscriptのドキュメントが不足しているため、この資料は誰かにとって便利なものになります。







まず、ライブラリをインポートします(システムにない場合は、gitからダウンロードできます



from Exscript import Account from Exscript.protocols import SSH2
      
      







たとえば、シスコの場合、Googleにpingを送信しますが、次の設定にコマンドを使用することを妨げるものはありません。



 acc = Account('USERNAMESSHAAA', 'PASS') con = SSH2() con.connect('ROUTER_IP') con.login(acc) con.execute('terminal length 0') con.execute('ping vrf INTERNET 8.8.8.8') con.send('exit') output = con.response
      
      







出力は:

ping vrfインターネット8.8.8.8



5月11日水曜日19:13:25.551 FET

中止するにはエスケープシーケンスを入力します。

5、100バイトのICMPエコーを8.8.8.8に送信すると、タイムアウトは2秒です。

!!!

成功率は100パーセント(5/5)、往復の最小/平均/最大= 20/20/21ミリ秒

RP / 2 / RSP2 / CPU1:Msk-1-sr9000#




長い間苦労していたタスクが発生したのはHuaweiでした。Exscriptは、操作が完了するのを待たず、時間と確認の送信を要求しました。 たとえば、行のペアを診断する場合、yキーを押してEnterキーを押して確認することでしばらくの間サービスの中断を確認し、テストが完了するまで数秒待つ必要がありました。 これで、Exscriptがハングアップし、試行錯誤によって解決策がもたらされました。



このタスクを実行するために手動でスイッチに接続するときにコンソールで作業する例:



sys

システムビューに入り、Ctrl + Zでユーザービューに戻ります。

[SW] int g0 / 0/5

[SW-GigabitEthernet0 / 0/5] v

警告:コマンドはしばらくサービスを停止します、続行しますか?[Y / N]:y

ペアAの長さ:56メートル(s)

ペアBの長さ:56メートル(s)

ペアCの長さ:56メートル(s)

ペアDの長さ:56メートル(s)

ペアA状態:オープン

ペアBの状態:オープン

ペアCの状態:オープン

ペアD状態:オープン

[SW-GigabitEthernet0 / 0/5]



次に、Exscriptでできることを示します。To_Smth_Important_Device禁止トリガーの説明にある推論を使用して、アップリンクのランダムテストを制限します。



 acc = Account('USERNAMESSHAAA', 'PASS') con = SSH2() con.connect('ROUTER_IP') con.login(acc) con.execute('screen-length 0 temporary') con.execute('sys') con.execute('interface GigabitEthernet0/0/2') con.execute('disp th') upck = '' upck = con.response if 'To' not in upck: con.set_prompt(r'Y') con.execute('vi') con.set_prompt('Pair D state.{0,20}') con.execute('Y') output = con.response else: output = 'UPLINK DETECTED! TEST ON UPLINKS RESTRICTED!' con.send('quit\r') con.send('quit\r') con.send('quit\r')
      
      







出力:



/ N]:Y

情報:この操作には数秒かかる場合があります。 しばらくお待ちください。

ペアAの長さ:56メートル(s)

ペアBの長さ:56メートル(s)

ペアCの長さ:56メートル(s)

ペアDの長さ:56メートル(s)

ペアA状態:オープン

ペアBの状態:オープン

ペアCの状態:オープン

ペアD状態:オープン




裁量で出力を解析できます。



ご清聴ありがとうございました!



All Articles