【python】netmikoを試してみる
保守がつらいので、Teratermマクロの置き換えを検討しています。
上記ページでネットワーク自動化に使えるツールやライブラリを紹介してくださっているのですが、今いる現場のプラットフォーム的には netmiko がマッチしてそうなので、今回は netmiko を試してみます。
netmiko とは
公式では以下の通りの説明があります。
Multi-vendor library to simplify Paramiko SSH connections to network devices
要はネットワーク機器にSSHでログインして諸々の操作をしてくれるPythonのライブラリですね。
インストール
pip
でインストールできます。
# python のバージョン確認 python3 --version Python 3.6.8 # インストール実行 python3 -m pip install -U --user netmiko # netmiko のバージョン確認 python3 -m pip show netmiko Name: netmiko Version: 3.1.1 Summary: Multi-vendor library to simplify Paramiko SSH connections to network devices Home-page: https://github.com/ktbyers/netmiko Author: Kirk Byers Author-email: ktbyers@twb-tech.com License: MIT Location: /home/***/.local/lib/python3.6/site-packages Requires: paramiko, pyserial, scp, setuptools, textfsm Required-by:
試してみる
手持ちの環境にある vyOS に接続してみます。
公式のReadMeを参考に以下のコードを書きました。
from netmiko import Netmiko remote_device = {'device_type': 'vyos', 'ip': '192.168.0.1', 'username': 'vyos', 'password': 'vyos'} connection = Netmiko(**remote_device) # コマンド実行 output = connection.send_command('show interface') print(output) connection.disconnect()
実行結果
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down Interface IP Address S/L Description --------- ---------- --- ----------- eth0 192.168.0.1/24 u/u eth1 192.168.1.254/24 u/u lo 127.0.0.1/8 u/u ::1/128
実機でコマンドを実行したときと同じ結果が取得できていることが確認できました。