前提・実現したいこと
netmikoを利用し、jump severを2ホップしネットワーク機器のコンフィグ情報等を取得したい。
<構成>
windows(netmikoサーバ) ==> jump sever1(linux) ==> jump sever2(linux) ==> NW機器(cisco等)
発生している問題・エラーメッセージ
jump sever2のlinuxサーバの種類により、redispatch(net_connect, device_type='cisco_ios') 後のenableコマンド、send_commandコマンドだが正常に実行されない。
該当のソースコード(概略)
netmiko
1 2from netmiko import ConnectHandler 3import time 4from netmiko import redispatch 5 6jumpserver = { 7 'device_type':'terminal_server', 8 'ip': 'xxx.xxx.xxx.xxx', 9 'username':'xxx', 10 'password':'xxxx', 11} 12 13net_connect = ConnectHandler(**jumpserver) 14print net_connect.find_prompt() 15 16#ssh接続 17net_connect.write_channel("ssh xx@xxx.xxx.xx.xx") 18sleep(x) 19net_connect.read_channel() 20 21#password入力 22net_connect.write_channel("xxxx") 23sleep(x) 24net_connect.read_channel() 25 26#device_type変更 27redispatch(net_connect, device_type='cisco_ios') 28 29#enableモード 30net_connect.enable() 31 32#コマンド実行 33net_connect.send_command('show run') 34net_connect.disconnect() 35
試したこと
jump sever2がいろいろ変更になるのでOSの種類を確認したところ
GNU/linux --- OK
SSD/linux --- NG
モニタリングを行いながらワンステップずつ上記プログラムを実行すると
NGの場合、net_connect.enable()後にenable状態のコマンドプロンプトとなっていない。
補足情報(FW/ツールのバージョンなど)
python 3.7
netmiko 3.3.3
linuxサーバは上記以上不明
あなたの回答
tips
プレビュー