Cisco APIC レイヤ 4 から レイヤ 7 のデバイス パッケージ開発ガイド
概要
概要

概要

Application Policy Infrastructure Controller とのサービス統合の概要

Application Policy Infrastructure ControllerAPIC)は、セキュア ソケット レイヤ(SSL)のオフロード、サーバ ロード バランシング(SLB)、Web アプリケーション ファイアウォール(WAF)、および従来のファイアウォールなどのネットワーク サービスの挿入とプロビジョニングを自動化します。 ネットワーク サービスは、アプリケーション デリバリ コントローラ(ADC)やファイアウォールなどのサービス アプライアンスで行われます。 サービス アプライアンスは、1 つ以上のサービス機能を実行できます。

APIC によってサービス グラフを定義できます。 サービス グラフの各ノードはネットワーク機能を表します。 グラフは、ユーザ定義のポリシーに基づくサービス機能を定義します。 サービス アプライアンス(デバイス)は、グラフ内のサービス機能を実行します。 1 つ以上のサービス アプライアンスが、グラフに必要なサービスを実行できます。 1 つ以上のサービス機能が単一のサービス デバイスで実行できます。

APIC には、ネットワーク サービスのアプライアンス(デバイス)にネットワーク サービス機能を挿入し、設定するためのデバイス パッケージが必要です。 デバイス パッケージは以下を含む zip ファイルです。
  • DeviceModel.xml:デバイス パッケージには、DeviceModel.xml という デバイス仕様である 1 つのXML ファイルを含める必要があります。 デバイス仕様は各機能の設定など、デバイスの階層的説明を提供する XML ファイルで、APIC の管理オブジェクトにマッピングされています。 デバイス仕様は、以下を定義します。
    • デバイス機能

    • 各機能を設定するときに APIC が必要とするパラメータ

    • 各機能のインターフェイスおよびネットワーク接続情報

  • DeviceScript.py:デバイス パッケージには、DeviceScript.py という1 つの Python ファイルを含める必要があります。 この Python ファイルでは、APIC とデバイス間でやりとりするための API を定義する必要があります。 デバイス仕様 XML ファイルが、デバイス スクリプトをこの Python ファイルに関連付けます。

    デバイス スクリプトは、APIC とデバイス間の通信を管理します。 また、一般的な API からのコールをデバイス固有のコールに変換することで、APIC イベントとデバイスの相互作用を表す機能コール間のマッピングを定義します。

    APIC にデバイス パッケージをアップロードすると、APIC はデバイスを表す管理対象オブジェクトの階層を作成し、デバイスのスクリプトを検証します。

  • Python またはテキスト ファイルを含む追加ファイルおよびディレクトリ。 デバイス パッケージには、デバイスのやりとりと設定をサポートする Python ライブラリを含めることができます。 サポート Python ファイルは複数のディレクトリに分割できます。 またパッケージにはサポート テキスト ファイルも含めることができます。 デバイス パッケージには、サポート Python egg ファイルを含めることができます。

  • images ディレクトリ:デバイス パッケージには、images ディレクトリを含め、またディレクトリには vendor_name.gif という 1 つのファイルを含める必要があります。 イメージ サイズは 28 ピクセル X 28 ピクセルにする必要があります。

次に、Insieme というベンダーからのパッケージ zip ファイルのリストの例を示します。

bash-4.1$ unzip -l insiemeDevicePackage.zip 
Archive:  insiemeDevicePackage.zip          
  Length      Date    Time    Name          
---------  ---------- -----   ----          
   309597  03-17-2014 17:39   DeviceModel.xml
     1597  03-17-2014 17:39   DeviceScript.py
        0  01-30-2014 15:36   common/                 
     1919  02-06-2014 11:35   common/deviceInterface.py
        0  01-30-2014 15:36   feature/                 
    21919  02-06-2014 11:35   feature/functionCommon.py  
     6485  10-31-2013 06:32   feature/function2.py
     7747  10-31-2013 06:32   feature/function1.py          
        0  10-31-2013 06:32   feature/__init__.py 
        0  01-30-2014 15:36   lib/                 
     1919  02-06-2014 11:35   lib/    
        0  01-30-2014 15:36   util/                 
    21919  02-06-2014 11:35   util/logging.py  
        0  10-31-2013 06:32   parser/configParser.py        
        0  02-12-2014 10:07   images/                       
     1380  02-12-2014 10:07   images/insieme.gif

次の図では、デバイス パッケージと APIC の関係について説明します。

図 1. APIC パッケージのアップロード



デバイス パッケージ アーキテクチャの概要

次の図では、デバイス パッケージによる Application Policy Infrastructure ControllerAPIC)サービスの自動化および挿入アーキテクチャを示します。

図 2. デバイス パッケージ アーキテクチャ



GUI またはノースバウンド APIC インターフェイスを介してデバイス パッケージをアップロードすると、APIC がそれぞれ固有なデバイス パッケージのネームスペースを作成します。 デバイス パッケージのコンテンツが解凍され、ネームスペースにコピーされます。 デバイス パッケージのネームスペースのため作成されるファイル構造は次のとおりです。

root@apic1:/# ls
bin  dbin  dev  etc  fwk  install images lib  lib64  logs  pipe  sbin  tmp  usr util

root@apic1:/install# ls
DeviceScript.py DeviceSpecification.xml feature common images  lib  util.py

デバイス パッケージのコンテンツは install ディレクトリにコピーされます。

APIC はデバイス モデルを解析します。 XML ファイルで定義される管理対象オブジェクトは、ポリシー マネージャが保持する APIC の管理オブジェクト ツリーに追加されます。

デバイス パッケージで定義される Python スクリプトは、ネームスペースのスクリプトラッパー プロセス内で起動されます。 ファイル システムへのアクセスは制限されます。 Python スクリプトは /tmp に一時ファイルを作成し、デバイス パッケージの一部としてバンドルされたすべてのテキスト ファイルにアクセスすることができます。 ただし、ファイルで固定データを作成または保存する Python スクリプトは作成しないでください。

ログは 2 つのファイル、debug.log および periodic.log に書き込まれます。 設定 API イベント ログはすべて debug.log に書き込まれ、定期ポーリング API ログは periodic.log に書き込まれます。 ロギング フレームワークは Python ロギング フレームワークに似ています。

ログ ファイルは、ファブリック管理者として APIC にログインすることでアクセスできます。 ログ ファイルは /data/devicescript/<vendorname-model-pkgversion>/logs にあります。

デバイス パッケージの各バージョンはそれぞれのネームスペースで動作するため、APIC ではデバイス パッケージの複数のバージョンが共存できます。 それによって、一連のデバイスを管理する特定のバージョンを選択できます。

デバッグ ログの概要

Application Policy Infrastructure ControllerAPIC)はデバイス スクリプトのデバッグに使用できるログ ファイルを保持します。 ログ ファイルは、次のディレクトリ内に保持されます。

ディレクトリ ログ ファイル
/data/devicescript debug.log および periodic.log
/var/log/dme
  • DME ログ:表示するにはルート権限が必要です。

  • コア ファイル:コア ファイルのプロセス スタックを確認するバックトレースを使うにはルート権限が必要です。

  • svc_ifc_*.log:表示するにはルート権限が必要です。 APIC で問題が生じた場合にのみ、これらのログ ファイルを表示する必要があります。 ログ ファイルのエクスポートの詳細については、『Cisco ACI Troubleshooting Guide』を参照してください。

これらのディレクトリにアクセスするには管理者権限が必要です。