今回はnetmikoというpythonのライブラリを使って、YAMAHARTX830のコンフィグを自動化してみました。
目次
はじめに
- 概要: NetmikoはPythonを用いてネットワーク機器へのSSH接続を簡単にし、CLI操作を自動化できるライブラリです。
- 目的: YAMAHA RTX830のコンフィグを自動で取得する方法について説明します。
手順
まずは、以下の環境になっていることを確認します。
環境の確認
- Pythonインストール済み(3.6以上推奨)
- RTX830がSSH接続可能な設定になっていること
Netmikoライブラリのインストール方法
次にNetmikoのライブラリをインストールしていきます。
pip install netmiko
Netmikoの基本的な使い方
Netmikoを使って機器に接続する手順:
まず、Netmikoの基本的なコード構成を説明し、実際にどのように接続するかを示します。
from netmiko import ConnectHandler
# デバイスの情報
device = {
'device_type': 'yamaha',
'host': '192.168.100.1',
'username': 'admin', #SSHで接続するユーザ名
'password': 'password', #SSHで接続するパスワード
}
# 接続とコマンド実行
net_connect = ConnectHandler(**device)
output = net_connect.send_command('show config')
print(output)
コンフィグをファイルに書き出す
ファイルに書き出したい場合は以下のようにします。
from netmiko import ConnectHandler
from datetime import datetime
# デバイスの情報
device = {
'device_type': 'yamaha',
'host': '192.168.100.1',
'username': 'admin',
'password': 'password',
}
# 接続とコマンド実行
net_connect = ConnectHandler(**device)
output = net_connect.send_command('show config')
# 取得したコンフィグ情報をテキストファイルに保存するサンプルコード
config = output
# 現在の日付と時刻を取得し、ファイル名用にフォーマット
now = datetime.now()
timestamp = now.strftime("%Y%m%d_%H%M%S") # "YYYYMMDD_HHMMSS" 形式
# ファイル名を生成
filename = f"config_backup_{timestamp}.txt"
# ファイルを書き出す
with open(filename, "w") as file:
file.write(output)
print(f"コンフィグ情報を {filename} に保存しました。")
ちなみにファイルの保存場所は、プログラムを実行したフォルダの直下になるので、変更したい場合はパス指定してください。
スケジュールなどで実行するようにしておけば、自動で取得できるようになります。
以上です。ありがとうございました。
コメント