Ciscoのスイッチやルーターは、Pythonインタープリタを搭載しており、これを利用することでエンドデバイス上で直接スクリプトやプログラムを実行することが可能です。特に、Cisco Nexus 9000シリーズのデバイスは、インタラクティブモードと非インタラクティブ(スクリプト)モードの両方でPython v2.7.5をサポートしています。
Pythonを使用すると、CLIコマンドを実行したり、POAP(PowerOnAutoProvisioning)やEEM(EmbeddedEventManager)などのさまざまなタスクを実行したりするためのプログラムによるアクセスを提供します。また、Cisco NX-OSで提供されるCisco Pythonパッケージを使用すると、多数のコアネットワークデバイスモジュール(インターフェイス、VLAN、VRF、ACL、ルートなど)へのアクセスが可能になります。
以下に、Ciscoスイッチ上でPythonを使用してCLIコマンドを実行する基本的なスクリプトの例を示します。
import paramiko
# スイッチのIPアドレス、ユーザー名、パスワードを定義します
ip_address = "192.168.1.1"
username = "admin"
password = "password"
# SSHクライアントを作成します
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# スイッチに接続します
ssh_client.connect(hostname=ip_address, username=username, password=password)
# スイッチにコマンドを送信します
stdin, stdout, stderr = ssh_client.exec_command('show ip int brief')
# 出力を読み取ります
output = stdout.read()
# 出力を表示します
print(output.decode('utf-8'))
# 接続を閉じます
ssh_client.close()
このスクリプトは、Pythonのparamikoライブラリを使用してCiscoスイッチにSSH接続し、show ip int brief
コマンドを実行してその出力を表示します。このように、Pythonを使用すると、ネットワークデバイスの管理や自動化を効率的に行うことができます。
以上、PythonとCiscoスイッチの連携について簡単に説明しました。これからもPythonを活用したネットワーク自動化の可能性は広がり続けるでしょう。ぜひ、Pythonを使ったネットワーク管理の世界を探求してみてください。