「非公式シリーズ」netmikoのデバイスタイプに指定できるdevice typeを調べるためのpythonスクリプト
netmikoを使うときに、以下のリンク先のnetmikoの公式サイト(netmikoのGitHub)にのってるサンプルスクリプトがなにかと参考になります。例えば、使用できるdevice typeを調べる方法とか、ログをとる方法が載ってたり。
ただ、netmikoの公式サイト(netmikoのGitHub)にのってるサンプルスクリプトだと、説明が何もないのでnetmikoをこれから使おうと言う方にはちょっと厳しめです。(英語だし、、、)
そこで、勝手にnetmiko公式サイト(netmikoのGitHub)のサンプルスクリプトを、日本語での意味などを追記して掲載しているシリーズです。
今回は、デバイスタイプに指定できるdevice typeを調べるためのpythonスクリプトです。
デバイスタイプに指定できるdevice typeを調べるためのpythonスクリプト
available_device_types.py
from netmiko import ConnectHandler # デバイスタイプに'invalid'と指定 cisco1 = { "device_type": "invalid", "host": "cisco1.lasthop.io", "username": "pyclass", "password": "invalid" } net_connect = ConnectHandler(**cisco1) net_connect.disconnect()
解説
サンプルスクリプトのように、device_typeの値に"invalid"と指定したスクリプトを実行するとエラーとなります。
このとき、数行エラーメッセージが出力されますが、そのあとに使用できるデバイスタイプ一覧がされ、使用できるデバイスタイプ一覧を確認することができます。
(実は、device_typeは"invalid"でなくても、適当な文字列でもかまいません)
今回の方法で確認できるのは、ssh接続を行いたいときに使用するdevice_typeなります。
もし、telnet接続を行いたいときに使用するdevice_typeを確認したい方は、device_typeの値に"invalid_telnet"と指定してください。
(device_typeの名前の_telnetが後ろに付くと、telnet接続を使用するようにnetmikoは実装されています)
また、本サンプルスクリプトは、実行してもエラーとなるため実際にはリモート接続を行わないため、"host"や"username"などは、適当な文字列でも問題ありません。
実行例
> python .\available_device_types.py Traceback (most recent call last): File "available_device_types.py", line 28, in <module> net_connect = ConnectHandler(**cisco1) File "\netmiko\ssh_dispatcher.py", line 321, in ConnectHandler raise ValueError( ValueError: Unsupported 'device_type' currently supported platforms are: a10 accedian adtran_os alcatel_aos alcatel_sros allied_telesis_awplus apresia_aeos arista_eos aruba_os aruba_osswitch aruba_procurve avaya_ers avaya_vsp broadcom_icos brocade_fastiron brocade_fos brocade_netiron brocade_nos brocade_vdx brocade_vyos calix_b6 cdot_cros centec_os checkpoint_gaia ciena_saos cisco_asa cisco_ftd cisco_ios cisco_nxos cisco_s300 cisco_tp cisco_wlc cisco_xe cisco_xr 以下は省略