CTC 教育サービス
[IT研修]注目キーワード Python Power Platform 最新技術動向 生成AI Docker Kubernetes
みなさん、こんにちは。
今回は、「Pythonとネットワーク自動化基礎検定」の出題範囲の中でも、ライブラリの使い方についての理解度が問われやすい部分に焦点を当てましょう。ネットワーク自動化のスクリプトは、単に動くコードを書ければよいわけではありません。実務でも試験でも、
といった判断ができるかどうかは重要です。たとえば、「情報を取得したい」「ログを保存したい」という同じ目的でも、NAPALMを使うべき場面と、Netmikoを使うべき場面は異なります。こうした違いを理解していないと、スクリプトは書けても、現場では使いづらいものになってしまいます。今回は、そうしたライブラリの役割や使いどころを整理しながら確認できる問題にしました。「なぜこの選択になるのか」を意識しながら読んでみてください。
次は、NAPALMを使ってネットワーク機器の情報を取得するコードです。変数 facts に含まれる情報の説明として、正しいものを1つ選びなさい。
from napalm import get_network_driver
driver = get_network_driver(’ios’)
device = driver(’192.168.1.1’, ’admin’, ’password’)
device.open()
facts = device.get_facts()
print(facts)
device.close()
選択肢:
A. facts は文字列であり、正規表現で解析する必要がある
B. facts は辞書で、ホスト名や稼働時間などの基本情報が含まれる
C. facts には running-config の全文が含まれる
D. facts はJSON形式の文字列として返される
正解:
B
解説:
NAPALMの get_facts() は、機器に接続して「機器の基本情報」を取り出し、辞書(dict)として返します。辞書で返るという点が重要で、CLI出力のように整形された文字列を解析するのではなく、キーを指定して値を取り出せます。たとえば次のように扱います。
facts = device.get_facts()
print(facts[”hostname”])
print(facts[”os_version”])
print(facts[”uptime”])
ここで得られる情報は、だいたい、固定的で変化しにくい機器情報です。代表例は以下です。
NAPALMは、共通APIとして情報を取り出せるのが強みで、出力をパースするよりも辞書から目的の値を抽出できるようにしておきましょう。
Netmiko ライブラリを使うメリットとして最も適切なものを1つ選びなさい。
選択肢:
A. 機器のホスト名やOSバージョンを統一的に取得したい
B. running-config を差分比較してバックアップしたい
C. 特定の show コマンドを実行し、その出力をそのまま保存したい
D. ベンダーごとの差異を意識せずに情報を取得したい
正解:
C
解説:
Netmikoの強みの一つは、ネットワーク機器にSSHで入り、CLIコマンドをそのまま実行できることです。普段ターミナルで打っている show コマンドをPythonで自動化するイメージです。なお、show コマンドの返却は文字列で受け取れます。たとえば以下のように記述します。
logs = net_connect.send_command(”show logging”)
with open(”logs.txt”, ”w”) as f:
f.write(logs)
Netmikoは、次のような場面に向いています。
NetmikoとNAPALMの使い分けは、次のように判断するとよいでしょう。
次は、OpenPyXLを使ってExcelファイルにデータを書き込むコードです。このコードの説明として正しいものを1つ選びなさい。
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = ”Status”
ws.append([”hostname”, ”cpu”, ”memory”])
ws.append([”router01”, 23, 45])
wb.save(”status.xlsx”)
選択肢:
A. append() は常にセルA1から上書きする
B. Workbook() を呼ぶと自動的に既存ファイルが開かれる
C. ws.append() は行単位でデータを追加する
D. wb.save() を呼ばなくてもファイルは保存される
正解:
C
解説:
OpenPyXLは、Excelファイル(.xlsx)をPythonから操作するためのライブラリです。それに含まれる append() は1行分のデータをそのまま追加できるメソッドです。
ws.append([”hostname”, ”cpu”, ”memory”])
ws.append([”router01”, 23, 45])
このコードのように記述すると、最初の append では1行目、2回目の append では2行目、というように、次の空行に追記されます。
今回は、ネットワーク自動化でよく使われる主要なライブラリについて整理しました。
これらのライブラリは、単に使い方を覚えるだけでなく、「どの場面で、なぜそのライブラリを選ぶのか」という視点で理解することが重要です。それを判断できると、実務で使えるような自動化スクリプトを、もっと柔軟に書けるようになるでしょう。
さて次回は、例外処理やタイムアウト、エラーハンドリングといった「失敗を前提にした自動化」をテーマに取り上げる予定です。現場や理解でも役立つ内容です。どうぞお楽しみに。
[IT研修]注目キーワード Python Power Platform 最新技術動向 生成AI Docker Kubernetes