この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章では、Cisco Nexus 3000 シリーズ スイッチで Python アプリケーション プログラミング インターフェイス(API)サポート機能を使用するための概要と、必要なインストール情報を示します。
Python は簡単に習得できる強力なプログラミング言語です。効率的で高水準なデータ構造を持ち、オブジェクト指向プログラミングに対してシンプルで効果的なアプローチを取っています。Python は、簡潔な構文、動的な型付け、およびインタープリタ型という性質によって、ほとんどのプラットフォームのさまざまな分野でスクリプティングと高速なアプリケーション開発を実現する理想的な言語です。
Python のインタープリタと広範な標準ライブラリは、Python Web サイトから、主要なプラットフォームに対応したソース形式またはバイナリ形式で自由に利用できます。
また、このサイトには、サードパーティが無償で提供している多数の Python モジュール、プログラム、およびツールのディストリビューションとそれらへのリンク、さらに追加のドキュメンテーションが掲載されています。
Cisco Nexus 3000 シリーズ スイッチは、Python v2.7.2 で使用できるすべての機能をサポートします。
Cisco Nexus 3000 シリーズ スイッチの Python スクリプティング機能では、次の作業を行うことができます。
• スイッチ起動時に設定を確認するためのスクリプトを実行する。
• バッファ使用状況の特性をモニタし、対応することで、予防的な輻輳管理を行う。
• 電源投入時の自動プロビジョニングまたは EEM モジュールとの統合。
Python インタープリタは Cisco NX-OS ソフトウェアにデフォルトで搭載されています。Python は python コマンドを入力することで起動できます。また、import cisco.py コマンドで cisco.py モジュールをインポートすることで、Cisco NX-OS API にアクセスするスクリプトを作成できます。
mypkg.tgz をサーバにコピーすることで、サードパーティ製の純粋な Python パッケージをインストールできます。サードパーティ製パッケージを抽出してインストールするには、次の手順を実行します。
• copy scp://user@server/path/to/mypkg.tgz bootflash:mypkg.tgz vrf management コマンドを実行して、tar ファイルのセキュア コピーを行います。
• tar extract bootflash:mypkg.tgz コマンドを使用して、mypkg.tgz ファイルを展開します。
• move bootflash:mypkg-1.2/* bootflash: コマンドを使用して、抽出したファイルをブートフラッシュに移動します。
• python setup.py instal コマンドを使用して、パッケージをインストールできます。
• サードパーティ製パッケージは、スクリプトまたは Python シェルで使用できます。
(注) 将来のリリースでは、easy_install コマンドを使用して、サードパーティ製パッケージをインストールできるようになります。
(注) SPEP8 コーディングのガイドラインに準拠するために、Cisco Python API の名前がいくつか変更されました。
既存のスクリプトを新しい API に変換するために、次の例を使用できます。
% cat sed.in
s/showArpTable/show_arp_table/g
s/showVshRoutes/show_vsh_routes/g
s/showHwRoutes/show_hw_routes/g
s/verifyRoutes/verify_routes/g
s/verifyArpTable/verify_arp_table/g
s/getTotalInstantUsage/get_total_instant_usage/g
s/GetRemainingInstantUsage/get_remaining_instant_usage/g
s/getMaxCellUsage/get_max_cell_usage/g
s/getSwitchCellCount/get_switch_cell_count/g
% sed -f sed.in < python_script_with_old_API_names.py > python_script_with_old_API_names.py
ここでは、パラメータを渡すことによって Python スクリプトを作成し、実行する方法について説明します。内容は次のとおりです。
• 「Embedded Event Manager のサポート」
Python シェルは、パラメータを指定せずに python コマンドを使用することで開始できます。
Python スクリプトは、python <filename> コマンドを使用して実行することができます。
Python スクリプトは、python <filename> [arg1, arg2, arg3,.....] コマンドを使用して実行することができます。
Embedded Event Manager(EEM)は、イベントに基づいた Python スクリプトの呼び出しをサポートします。variable $ コマンドを使用して、イベントの syslog を Python スクリプトに渡すことができます。
次の例は、IF_DOWN イベントに対して Python スクリプトを呼び出す EEM を示しています。