回答:
ほとんどすべての注1少なくともIOS 12.2を実行しているCisco IOSシステムには、組み込みのtclシェルプログラミング機能があります。tclスクリプトをフラッシュに保存して実行できます。
Cisco IOSには、EEM(Embedded Event Manager)と呼ばれる軽量のネイティブプログラミング環境もあります。EEMイベントは、(Netflowを介した)特定のポートのパケット、ログメッセージ、インターフェイスのアップ/ダウンなど、さまざまな入力によってトリガーできます。EEMをIOSのtclsh機能のサブセットと考えてください。EEMはTCLでのプログラミングよりも効率が悪くなりますが、処理しているIOSミックスによっては、機能のサポートが不安定になります。EEMは、必要に応じてcronスケジュールで実行できます。この回答の最後に、EEMスクリプトの例を含めました。EEMは、「if-this、do-that」ステートメントの数が少ない場合に最適です。関数などの定義を開始する場合は、箇条書きをかざして使用してくださいtclsh
。
新しいシスコ製品は、携帯電話で入力しているときに説明できるよりも広い、特別な缶詰のSDN APIのセットをサポートしています。このファミリの1つの例にはCisco APICが含まれますが、これはそれらが利用できるもののほんの一部にすぎません。
過去20年間に行われたCiscoスクリプトのほとんどは、画面のスクレイピング、snmp、および(今日の)NETCONFを介して行われていることを指摘しなければ、私は失望します。CLIから実行できることはすべて、画面のスクレイピングによって自動化できます。私はキャリアの大部分をこれだけに費やしてきました。スクリーンスクレイパーは通常、スクリプトを外部のlinuxシステムでホストし、独自の武器でルーターに接続します。通常、次の言語のいずれかです。
Net::SSH::Perl
、Net::Telnet::Cisco
、Net::SNMP
、およびCisco::Reconfig
pexpect
、netmiko
、exscript
、pysnmp
、およびciscoconfparse
net-ssh
、snmp
およびcisco
最後に、新しいCisco Nexus製品にはPython API(Nexus 9K用のものなど)が搭載されています。通常、Python APIはTCL APIよりも扱いが簡単ですが、現時点では、Nexusファミリーに限定されています。
注1私が知っている唯一の例外は、Cisco 3550です。これはtclsh
12.2にはありません。