IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Pythonでネットワーク自動化をしよう

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第28回 OpenPyXLライブラリ(8)実例④ (小澤昌樹) 2024年12月

はじめに

みなさん、こんにちは。

前回は、ネットワーク機器の設定適用、データ収集、パスワード変更といったネットワーク管理における重要な作業を効率化するための3つのシナリオを紹介しました。ネットワーク管理における自動化は、ますます高度な機能の実装へと進化しています。

今回は、前回に続いて自動化のさらなる可能性を探るべく、デバイス設定の自動バックアップや設定コンフィグのコンプライアンスチェックについて取り上げます。これらによって、より効率的かつ安定したネットワーク運用が実現でき、障害発生時の復旧や運用リスクの低減が期待できます。それでは詳しく見ていきましょう。

デバイス設定の自動バックアップ
  1. シナリオ
    ネットワーク機器の設定を定期的にバックアップし、その結果をExcelで管理する。
  2. 実装方法
    • NAPALMでデバイスの設定を取得し、ファイルに保存する。
    • OpenPyXLでバックアップの結果やタイムスタンプをExcelに記録する。
  3. コード例
    
    import openpyxl
    from napalm import get_network_driver
    from datetime import datetime
    
    devices = [ {’hostname’: ’192.168.1.1’, ’username’: ’admin’, ’password’: ’admin123’, ’platform’: ’ios’}, # 必要に応じて、他のデバイスを追加 ]
    wb = openpyxl.Workbook() sheet = wb.active sheet.title = ’Backup Status’ sheet.append([’Hostname’, ’Backup Status’, ’Timestamp’])
    for device_info in devices: driver = get_network_driver(device_info[’platform’]) device = driver(device_info[’hostname’], device_info[’username’], device_info[’password’]) try: device.open() config = device.get_config() running_config = config[’running’]
    # 設定をファイルに保存 filename = f"{device_info[’hostname’]}_backup.cfg" with open(filename, ’w’) as f: f.write(running_config)
    # 成功をExcelに記録 sheet.append([device_info[’hostname’], ’Success’, datetime.now()]) device.close() except Exception as e: # エラーをExcelに記録 sheet.append([device_info[’hostname’], f’Failed: {e}’, datetime.now()])
    wb.save(’backup_status.xlsx’)
設定コンプライアンスのチェック
  1. シナリオ
    ネットワーク機器の設定が基準(コンプライアンス)を満たしているかを確認し、その結果をExcelでレポート化する。
  2. 実装方法
    • NAPALMでデバイスの設定を取得する。
    • 取得した設定を基準と比較し、コンプライアンス違反を検出する。
    • OpenPyXLで結果をExcelにまとめる。
  3. コード例
    
    import openpyxl
    from napalm import get_network_driver
    
    devices = [ {’hostname’: ’192.168.1.1’, ’username’: ’admin’, ’password’: ’admin123’, ’platform’: ’ios’}, # 必要に応じて、他のデバイスを追加 ]
    compliance_rules = { ’banner_motd’: ’Authorized Access Only’, # 必要に応じて、他のルールを追加 }
    wb = openpyxl.Workbook() sheet = wb.active sheet.title = ’Compliance Report’ sheet.append([’Hostname’, ’Rule’, ’Compliance’, ’Details’])
    for device_info in devices: driver = get_network_driver(device_info[’platform’]) device = driver(device_info[’hostname’], device_info[’username’], device_info[’password’]) device.open() config = device.get_config() running_config = config[’running’]
    # コンプライアンスチェック for rule, expected_value in compliance_rules.items(): if rule == ’banner_motd’: if expected_value in running_config: compliance = ’Compliant’ details = ’’ else: compliance = ’Non-Compliant’ details = ’Banner message is incorrect or missing.’ # 他のルールも同様にチェック sheet.append([device_info[’hostname’], rule, compliance, details])
    device.close()
    wb.save(’compliance_report.xlsx’)
まとめ

今回の解説では、ネットワーク管理の自動化に向けた実用的な手法として、デバイス設定の自動バックアップとコンプライアンスチェックの2つのシナリオを取り上げました。これらを活用すると、ネットワーク環境の安全性と一貫性を確保し、管理作業の効率を大幅に向上させることができると思います。自動バックアップは障害発生時の迅速な復旧に貢献でき、コンプライアンスチェックは設定の一貫性とセキュリティ対策を確立できます。

次回も引き続き、ネットワーク管理のさらなる効率化を目指し、自動化ツールや高度な管理方法についてご紹介していきます。より安定した、運用リスクの少ないネットワーク環境の構築に役立てていただければ幸いです。どうぞお楽しみに。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes