AXP(Application eXtension Platform)/1.1

バージョン 2

    AXP(Application eXtension Platform)へ戻る

     

    ここに記載した情報は、AXP 1.1.x に関する情報です。

     

    AXP1.1で強化あるいは加わった機能

    • Swapスペースのサポート ... Swapスペースを設定することにより、よりたくさんのアプリケーションを同一の環境で実行することが可能となります。スワップサイズは最大4GBまで指定できます。
    • Logging and Tracing Modules ... ログ機能の強化:syslogは一般的にシステムの致命的なエラーなどのログを採取し、原因調査のために利用します。
    • Flexible Resource Allocation ... パッケージ構築時にCPU、メモリあるいはディスクなどのリソースを割り当てることが可能
    • Vmwareを利用してのAXPのエミュレーション ... VMwareを利用しデフォルトでNME-APPRE-302-K9上で動作するAXPプラットフォームを仮想的にエミュレートできます。
    • Development Authorization File ... パッケージを作成するためのパラメータの変更が行われた。1.0で構築されたパッケージは1.1に導入できるが新機能を使用することはできません。もし、1.1の機能を使用するにはパッケージの再構築が必要となります。
    • LKM Support ... Loadable Kernel Moduleをサポート。ドライバをダイナミックのロード可能。

     

    開発システムの要件

    アプリケーションは Linux 環境で開発する必要があります。最小限のシステム要件は、次のとおりです。

    • Intel Pentium 4 CPU 1.8 GHz、40 GB ハードディスク、および 512 MB メモリ
    • C コンパイラ:GNU C Compiler(gcc)Version 3.4.3
    • Fedora Core 4 以上の Linux ディストリビューション

     

    開発システムの準備

    ここでは、以下のような開発環境を作成します。(※ 2009/04現在、最新は1.1.5となっております。1.1.5をご利用の方は1.1.1を1.1.5と読み替えて参照ください。)

    /opt/AXP
          axp-sdk.1.1.1 ... AXP SDK のインストール先
            keys ............ 開発者証明書のインストール先
            apps ............ アプリケーションの作業先
    /var/ftp ............... anonymous ftp

     

    1. Fedora Core 4 以上の Linux がインストールしてあるシステムを用意します。(FC4での開発が推奨です)
    2. AXP SDKのインストール
      1. Cisco Download Software AreaのSoftware SearchにAXP SDKと入力し検索します。
      2. axp-sdk.1.1.1.tar.gz をダウンロードしてください。
      3. axp-sdk を解凍します。
        [~]# ls axp*
        axp-sdk.1.1.1.tar.gz
        [~]# cd /opt
        [opt]# mkdir AXP
        [opt]# cd AXP
        [AXP]# tar zxf ~/axp-sdk.1.1.1.tar.gz
      4. add-onをsdkにコピーします。
        [AXP]# ls ~/AXP*
        AXP_VMWare_add-on_package_files.gz
        [AXP]# cd axp-sdk.1.1.1
        [axp-sdk.1.1.1]# mkdir pkg
        [axp-sdk.1.1.1]# cd pkg
        [pkg]# tar zxf ~/AXP_VMWare_add-on_package_files.gz
        これらのファイルは、開発の際、パッケージの依存関係で使います。また、pkgにコピーすることで、pkg_build.shのdepsオプション指定時に、パッケージ名およびuuidを確認することができます。
      5. パスを設定します。
        [AXP]# export PATH=$PATH:/opt/AXP/axp-sdk.1.1.1/tools
        .bashrcなどで環境変数を自動設定すると作業が便利になります。
    3. 証明書の作成と申請
      VeriSignなどの認証局から X.509 証明書を取得するか、自己署名の X.509 証明書を作成します。ここでは、自己署名の手順を示します。
      1. OpenSSL ツールを使用して、自己署名入りの X.509 証明書を作成します。
        [~]# cd /opt/AXP
        [AXP]# mkdir keys
        [AXP]# cd keys
        [keys]# openssl genrsa -out private.key 1024
        Generating RSA private key, 1024 bit long modulus
        ~省略~
        [keys]# openssl req -new -x509 -days 365 -key private.key -out dev_certificate.sig
        ~省略~
        開発者証明書の名前は、dev_certificate.sig とする必要があります。
      2. 開発者証明書をシスコに送信します。
      3. 開発者証明書が承認されると、シスコから許可証明書 auth_bundle.sig が返却されます。
      4. auth_bundle.sig を /opt/AXP/keys にコピーします。

    許可証明書 auth_bundle.sig がないとアプリケーションをAXPにインストールすることができません。

     

    AXPプラットフォームの準備

    Cisco ISR 1841、2800、3800 シリーズ サービス統合型ルータの利用

    アプリケーション ランタイム環境ネットワーク モジュール(APPRE)は、ISR ネットワーク モジュール上で動作し、アプリケーションがルータのパフォーマンスに影響を与えるのを防ぐ専用ハードウェア リソースを提供します。APPRE は、標準的な x86 ベースのプロセッサを使用して構築され、標準的な Linux ハードウェア向けに開発されたソリューションのための理想的な環境を提供します。

    AXP アプリケーションをホストするために利用できる複数の APPRE モデルがあります。

    ハードウェア SKUリソース位置付け
    AIM-APPRE-102-K9AIM フォーム ファクタ省スペースの組み込みアプリケーション
    NME-APPRE-302-K9NME フォーム ファクタ汎用サービスおよびおよびパケット サービス
    NME-APPRE-522-K9NME フォーム ファクタ汎用サービスおよび高度なアプリケーション向け

    詳しくは、Cisco Application eXtension Platform を参照ください。

    AXPサービスモジュールの設定については、AXPクイックスタートガイドの「ハードウェアのインストレーション」~「Cisco AXP サービス モジュールの設定」を参照してください。

    手順は、以下のようになります。

    1. IOS CLI を使用して、統合サービスエンジンインターフェイスを設定します。
      ISR# conf t
      ISR(config)# interface Integrated-Service-Engine 1/0
      ISR(config-if)# ip address <ISR側IPアドレス>
      ISR(config-if)# service-module ip address <AXP側IPアドレス>
      ISR(config-if)# service-module ip default-gateway <AXP側GWアドレス>
      ISR(config-if)# no shutdown
    2. サービスモジュールへセッションを開始します。
      ISR# service-module Integrated-Service-Engine 1/0 session
      Trying a.b.c.d, 2066 ... Open
      <enter>
      se-Module>
      これよりAXPサービスモジュール上での作業になります。
    3. AXPサービスモジュールの設定を行います。
      se-Module> config t
      se-Module(config)> hostname AXP
      AXP(config)> int eth0
      AXP(config-interface)> ip address <IPアドレス> <ネットワークマスク>
      AXP(config-interface)> exit
      AXP(config)> ip route 0.0.0.0 0.0.0.0 <GWアドレス>
      AXP(config)> user sysadmin password 0 cisco
      AXP(config)> ip ssh server
      AXP(config)> end
      AXP> wr
      以上で、SSHでAXPにログインすることができるようになります。

      ※ ntp および timezoneの設定
      AXP> conf t
      AXP(config)> ntp server a.b.c.d
      AXP(config)> clock timezone Asia/Tokyo
      AXP(config)> end
      AXP> wr

    add-onのインストールへ進んでください。

     

    VMWareイメージの利用

    ISRのない方は、VMWareイメージでエミュレーションすることができます。

    • ※ 2009/04現在、最新は1.1.5となっております。1.1.1を1.1.5と読み替えて参照ください。
    • ※ Emulation of the NME-APPRE-302-K9 service module uses up to a maximum of 10 GB disk space. (The real NME-APPRE-302-K9 service module has up to 80 GB disk space available.)
    • ※ Applications that are packaged to run on a Cisco Application Service Module cannot also be run under VMware.

    The following Cisco AXP APIs and packages are supported on VMware:

    • IOS Information API
    • AXP Information API
    • AXP Trigger API
    • Serial Device API

     

    1. Cisco Download Software AreaのSoftware Searchにaxp-k9.vmwと入力し検索します。
    2. axp-k9.vmw.1.1.1.tar.gz を解凍し、axp-vm.1.1.1.vmx でVMWareを起動します。
    3. localhost という表示になるので、以下のコマンドを入力し、インタフェースを設定します。
      localhost> config t localhost(config)> hostname AXP AXP(config)> int eth0 AXP(config-interface)> ip address <IPアドレス> <ネットワークマスク> AXP(config-interface)> exit AXP(config)> ip route 0.0.0.0 0.0.0.0 <GWアドレス> AXP(config)> user sysadmin password 0 cisco AXP(config)> ip ssh server AXP(config)> end AXP> wr mem AXP>
      以上で、SSHでAXPにログインすることができるようになります。

      ※ ntp および timezoneの設定
      AXP> conf t
      AXP(config)> ntp server a.b.c.d
      AXP(config)> clock timezone Asia/Tokyo
      AXP(config)> end
      AXP> wr

    add-onのインストールへ進んでください。


    add-onのインストール

    add-onをインストールするためには、ftpサーバを用意する必要があります。

    1. ここでは、開発マシンにftpサーバを用意します。
      [~]# mount /media/cdrom
      [~]# rpm -ivh /media/cdrom/Fedora/RPMS/vsftpd-2.0.3-1.i386.rpm
      [~]# chkconfig vsftpd on
    2. add-onを解凍します。
      [~]# ls AXP*
      AXP_VMWare_add-on_package_files.gz
      [~]# cd /var/ftp
      [ftp]# tar zxf AXP_VMWare_add-on_package_files.gz
      axp-app-dev.vmw.1.1.1.pkg を含め、16個のファイルが解凍されます。
    3. anonymousでftpサーバにログインしファイルがダウンロードできるか確認してください。
    4. add-onをインストールします。
      SSHで、AXPにログインします。このときのパスワードは上で設定した情報となります。
      AXP> software install add url ftp://192.168.1.36/axp-app-dev.vmw.1.1.1.pkg
    5. しばらくするとAXPが再起動します。
    6. この作業を繰り返し、以下のパッケージをすべてインストールしてください。
      axp-app-dev.vmw.1.1.1.pkg
      axp-cli-plugin.vmw.1.1.1.pkg
      axp-eemapi.vmw.1.1.1.pkg
      axp-iosapi.vmw.1.1.1.pkg
      axp-perl-5.8.8.vmw.1.1.1.pkg
      axp-ssh-4.6p1-k9.vmw.1.1.1.pkg
      axp-tomcat5.vmw.1.1.1.pkg
      axp-vserial.vmw.1.1.1.pkg
      perl,tomcat,シリアル(vserial)などは必要に応じて後でインストールすることも可能です。app-devがあれば最低限の開発は可能です。
    7. add-onがインストールされたか確認します。
      AXP> show software packages
      Installed Packages:

        - Installer (Installer application) (1.1.1.0)
        - AXP Appliance Subsystem (Appliance Based Virtual Server Development System)  (VAR_APP_VERSION)
        - Bootloader (Primary) (Service Engine Bootloader) (VAR_PRIMARY_BOOTLOADER_VERSION)
        - AXP (Virtual Server Development System) (VAR_APP_VERSION)
        - Infrastructure (Service Engine Infrastructure) (2.5.0.1)
        - Global (Global manifest) (VAR_APP_VERSION)
        - Bootloader (Secondary) (Service Engine Bootloader) (1.0.2.0)
        - GPL Infrastructure (Service Engine GPL Infrastructure) (2.3.0.1)
        - guest_os (AXP Guest OS Add-on Package) (VAR_APP_VERSION)
        - Core (Service Engine OS Core) (2.5.0.1)

      Installed Plug-ins:

        - VSERIAL (Javelin Virtual Serial Device support) (1.1.1)
        - EEMAPI (EEM Event Notification API) (1.1.1)
        - iosapi (IOS Config Service API) (1.1.1)
        - perl-5.8.8 (perl-5.8.8) (1.1.1)
        - Tomcat (Apache Foundation Tomcat Servlet Container) (5.5.20)
        - app_ssh (Application SSH Add-on Package) (1.1.1)
        - cli_plugin (CLI Plugin bundle to allow custom CLI plugin) (1.1.1)
        - app_dev (Application Debugging Add-on Package) (1.1.1)
      インフラストラクチャアドオン パッケージのコピーは、ポストインストレーション時に仮想インスタンスでインスタンス化されます。インフラストラクチャアドオンパッケージはファイルシステムにありますが、仮想インスタンス間で共有されます。これに対して、サードパーティのアドオンパッケージは、1 つの仮想インスタンス内にサードパーティのアプリケーションが含まれているパッケージです。各サードパーティアプリケーションに、仮想インスタンスが 1 つだけ存在します。SDK には、複数のパッケージをコンパイルして 1 つのバンドルにする、バンドルツールも用意されています。
      &ref(): File not found: "Snap4.jpg" at page "AXP(Application eXtension Platform)/1.1";

     

    アプリケーションの作成

    Hello World

    初めてAXPでプログラムを行う方は、HelloWorldをご覧ください。

    以下の内容について学ぶことができます。

    • AXPアプリケーションの作成手順について
    • コンソールアクセスの作成例
    • パッケージの作成,更新,削除
    • AXPへパッケージのインストール
    • アプリケーションのステータス管理(ウォッチドックスクリプト)

     

    CLI Service API

    CLI サービス API によって、アプリケーションがホスト上の基本 CLI サーバと対話できるようになります。

     

    CLI プラグイン

    CLI Plug-in を使うことでアプリケーション固有のコマンドを作成して、Cisco AXP CLI にコマンドを追加します。

     

    Cisco IOS サービス API

    Cisco IOS Service API

     

    Tips