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

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

研修コース検索

コラム

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

CTC 教育サービス

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes 

第46回 Pythonとネットワーク自動化基礎検定 模擬問題解説(8) (小澤昌樹) 2026年5月29日公開

みなさん、こんにちは。

前回は、Jinja2テンプレートを使った設定生成について取り上げました。テンプレートを使うことで、設定を効率よく、かつミスなく生成できることを確認しました。

さて、ネットワーク自動化では、設定を作る工程とともに重要なのは、設定を適用する工程です。実際の現場では、設定を作るだけでは意味がなく、それを機器へ投入し、意図した通りに反映されているかを確認するところまでが一連の作業になります。特に、本番環境に設定変更を行う場合には、「どのように変更を適用するか」「問題があった場合にどう戻すか」といった点が重要になります。

今回は、「設定の適用」と「変更の検証」をテーマにした、模擬問題3問です。単にコードの書き方を覚えるのではなく、安全に変更するための考え方にも注目してみてください。

【問題1】NAPALMで設定を適用する

NAPALMを使って設定を変更する場合の基本的な流れとして、最も適切なものを1つ選びなさい。

選択肢:
A. 設定を直接送信して即時反映する
B. 設定を読み込んで比較し、適用してコミットする
C. CLIコマンドを1行ずつ送信する
D. 設定ファイルを保存するだけで自動的に反映される

正解:
B

解説:
NAPALMでは、設定変更を安全に行うために、以下のような手順を踏みます。

  1. 設定の読み込み(load)
  2. 差分の確認(compare)
  3. 問題なければ適用(commit)

たとえば、以下のようなコードになります。


device.load_merge_candidate(config="hostname router01")
diff = device.compare_config()

if diff: print(diff) device.commit_config() else: device.discard_config()

このように、設定をいきなり適用するのではなく、一度差分を確認することが重要です。これによって、意図しない変更が含まれていないかを事前にチェックできます。

なお、Aは危険な方法で、NAPALMの思想とも異なります。CはNetmiko的なアプローチで、抽象化されたAPIの利点を活かしていません。Dも誤りです。

【問題2】設定変更後の検証

設定変更を行ったあと、その結果を確認する方法として最も適切なものを1つ選びなさい。

選択肢:
A. 何もせず次の処理に進む
B. 機器を再起動する
C. showコマンドやAPIで状態を確認する
D. ログを削除する

正解:
C

解説:
設定変更は「適用して終わり」ではなく、「意図した通りに反映されたか」を確認することが重要です。
たとえば、

  • show running-config で設定確認
  • show ip interface brief で状態確認
  • NAPALMの get_facts() や get_interfaces() で状態取得

といった方法があります。


output = net_connect.send_command("show ip interface brief")
print(output)

あるいは、NAPALMであれば構造化データとして取得できます。


interfaces = device.get_interfaces()
print(interfaces)

このように、変更後の状態を確認することで、「設定は入ったが動作していない」といった問題を早期に発見できます。

なお、Aは最も危険な選択です。Bは不要で、業務への影響が大きすぎます。Dは検証とは無関係です。

【問題3】設定変更時の安全対策

ネットワーク機器への設定変更を自動化する際の安全対策として、最も適切なものを1つ選びなさい。

選択肢:
A. すべての機器に同時に設定を適用する
B. 事前に差分を確認し、必要に応じてロールバックできるようにする
C. エラーが出たら無視して処理を続ける
D. ログを出力しない

正解:
B

解説:
ネットワークの設定変更は、影響範囲が大きいため、慎重に行う必要があります。そのため、以下のような対策が重要です。

  • 変更前後の差分確認
  • ロールバック(元に戻す手段)の確保
  • 一部機器でのテスト実施
  • 段階的な適用

NAPALMでは、discard_config() を使って変更を破棄できますし、環境によってはロールバック機能も利用できます。


if diff:
    device.commit_config()
else:
    device.discard_config()

このように、問題があれば戻せる設計にしておくことで、リスクを最小限に抑えられます。
なお、Aのように一斉適用するのは危険です。CやDは運用として成立しません。

まとめ

今回は、設定の適用と検証というテーマについて確認しました。
ネットワーク自動化では、

  • 設定を生成する
  • 設定を適用する
  • 適用結果を検証する

という一連の流れが重要になります。
さらに、

  • 差分を確認する
  • ロールバックできるようにする
  • 段階的に適用する

といった「安全に変更するための設計」も欠かせません。

これまで扱ってきた、テンプレート、並列処理、例外処理といった技術は、すべてこの一連の流れの中で組み合わさって機能します。単体の知識として覚えるだけでなく、「どうつなげて使うか」を意識することで、より実践的な自動化に近づきます。ネットワーク自動化は、単に作業を効率化するだけでなく、運用の品質を高めるための手段でもあります。安全に変更し、確実に検証する。この基本を押さえておくことが、実務での信頼性につながります。

次回は、API連携や外部サービスとの連携といった、より発展的な自動化のテーマを取り上げる予定です。どうぞお楽しみに。

 

 [IT研修]注目キーワード   Python  Power Platform  最新技術動向  生成AI  Docker  Kubernetes