【netmiko】YAMAHA RTX830のコンフィグ取得を自動化する

今回は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} に保存しました。")

ちなみにファイルの保存場所は、プログラムを実行したフォルダの直下になるので、変更したい場合はパス指定してください。

スケジュールなどで実行するようにしておけば、自動で取得できるようになります。

以上です。ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

30歳未経験からネットワークエンジニアに転職し、運用→構築→設計の仕事をやってます。色んな機器(Cisco、YAMAHA、Fortigate、PaloAlto)を触らせてもらいとても楽しい仕事です!

現在は派遣にて主にCiscoを中心としたネットワーク設計~構築をしております。

また、2023年より副業で個人事業主や小規模企業からのパソコン設定~ネットワーク作業の仕事を請け負っておりますので、もしお困りの方がいましたらお気軽にお問い合わせください。

●今までの作業履歴
- パソコンの新旧入れ替え
- 拠点間のインターネットVPN接続(YAMAHA-Fortigate)

コメント

コメントする

目次