アプリケーション ホスティングに関する情報
ホスト アプリケーションは、サービス ソリューションとしてのソフトウェアであり、コマンドを使用してリモートで実行できます。アプリケーションのホスティングによって、管理者には独自のツールやユーティリティを利用するためのプラットフォームが与えられます。
このモジュールでは、アプリケーション ホスティング機能とその有効化の方法について説明します。
アプリケーション ホスティングの必要性
仮想環境への移行により、再利用可能なポータブルかつスケーラブルなアプリケーションを構築する必要性が高まりました。アプリケーションのホスティングによって、管理者には独自のツールやユーティリティを利用するためのプラットフォームが与えられます。ネットワーク デバイスでホスティングされているアプリケーションは、さまざまな用途に利用できます。これは、既存のツールのチェーンによる自動化から、設定管理のモニタリング、統合に及びます。
Cisco のデバイスは Linux ツール チェーンを使用して構築されたサードパーティ製の市販アプリケーションをサポートしています。ユーザは、シスコが提供するソフトウェア開発キットと相互にコンパイルされたカスタム アプリケーションを実行できます。
IOx の概要
IOx は Cisco が開発したエンド ツー エンド アプリケーション フレームワークであり、Cisco ネットワーク プラットフォーム上のさまざまなタイプのアプリケーションに対し、アプリケーション ホスティング機能を提供します。
IR1101 向けの IOx アーキテクチャは、ハイパーバイザ アプローチを使用する他のシスコ プラットフォームとは異なります。他のプラットフォームでは、IOx は仮想マシンとして動作します。一方 IR1101 では、IOx はプロセスとして動作しています。
シスコ アプリケーションのホスティングの概要
IR1101 では、ユーザは、アプリケーション ホスティング CLI を使用してアプリケーションを展開できます。アプリケーション ホスティング CLI は、他の古いプラットフォームでは利用できません。アプリケーションを展開する方法は他に Local Manager または Fog Director を使用する方法があります。
アプリケーション ホスティングは、次のサービスを提供します。
-
コンテナ内の指定されたアプリケーションを起動する。
-
使用可能なリソース(メモリ、CPU、およびストレージ)を確認し、それらを割り当て、管理する。
-
コンソール ロギングのサポートを提供する。
-
REST API を介してサービスへのアクセスを提供する。
-
CLI エンドポイントを提供する。
-
Cisco Application Framework(CAF)と呼ばれるアプリケーション ホスティング インフラストラクチャを提供する。
-
VirtualPortGroup および管理インターフェイスを介したプラットフォーム固有のネットワーキング(パケットパス)のセットアップを支援する。
コンテナは、ホスト オペレーティング システムでゲスト アプリケーションを実行するために提供される仮想環境と呼ばれています。Cisco IOS XE 仮想化サービスは、ゲスト アプリケーションを実行するための管理性とネットワーキング モデルを提供します。仮想化インフラストラクチャにより、管理者はホストとゲスト間の接続を指定する論理インターフェイスを定義できます。IOx は、論理インターフェイスをゲスト アプリケーションが使用する仮想ネットワーク インターフェイス カード(vNIC)にマッピングします。
コンテナに展開されるアプリケーションは、TAR ファイルとしてパッケージ化されます。これらのアプリケーションに固有の設定は、TAR ファイルの一部としてもパッケージ化されています。
デバイス上の管理インターフェイスは、アプリケーション ホスティング ネットワークを IOS 管理インターフェイスに接続します。アプリケーションのレイヤ 3 インターフェイスは、IOS 管理インターフェイスからレイヤ 2 ブリッジ トラフィックを受信します。管理インターフェイスは、管理ブリッジを使用してコンテナ/アプリケーション インターフェイスに接続します。IP アドレスは、管理インターフェイス IP アドレスと同じサブネット上にある必要があります。
IOXMAN
IOXMAN は、シリアル デバイスをエミュレートする Libvirt を除く、ゲスト アプリケーションのロギングまたはトレース サービスを提供するトレース インフラストラクチャを確立するプロセスです。IOXMAN は、ゲスト アプリケーションのライフサイクルに基づいて、トレース サービスを有効または無効にし、ロギング データを IOS syslog に送信し、トレース データを IOx トレース ログに保存し、各ゲスト アプリケーションの IOx トレースロ グを維持します。
IOx アプリケーションへの GPS アクセス
以前は、モデムで GPS が有効になっていると、NMEA ストリームが IOx に転送されませんでした。このリリースでは、NMEA ストリームを ngiolite モジュールから IOx に転送できます。これを有効にするには 2 つの手順があります。
-
Linux と IOx の間にトンネルを作成する。
-
すべての NMEA メッセージをトンネル経由で IOx に転送する。
システムコードはトンネルの存在を確認し、存在しない場合はデータを IOx に送信できません。
この機能をサポートするために、IR1101 と IR1800 の 2 つのセルラーモデム用に 2 つの新しいトンネルが作成されます。デフォルトでは 2 つのトンネルが作成され、どちらのモデムでも GPS/NMEA が有効になっていれば、次のように NMEA ストリームが対応するトンネルを介して送信されます。
Modem0:
[Linux] /dev/ttyTun5 および /dev/ttyTun6 [IOx]。/dev/ttyTun5 へのソフトリンクは /dev/ttyTunNMEA0 という名前で作成され、/dev/ttyTun6 へのソフトリンクは /dev/ttyNMEA0 という名前で作成されます。これらは、IOx からアクセスできます。
Modem1:
[Linux] /dev/ttyTun7 and /dev/ttyTun8 [IOx]。/dev/ttyTun7 へのソフトリンクは /dev/ttyTunNMEA1 という名前で作成され、/dev/ttyTun8 へのソフトリンクは /dev/ttyNMEA1 という名前で作成されます。これらは、IOx からアクセスできます。
次のコマンドは、GPS の状態を表示します。
IR1101#show app-hosting list
App id State
---------------------------------------------------------
gps RUNNING
IOx コンテナアプリケーションとしてのゲストシェル
ゲスト シェルは、仮想化された Linux ベースの環境であり、Cisco デバイスの自動制御と管理のための Python アプリケーションを含む、カスタム Linux アプリケーションを実行するように設計されています。ゲストシェルを使用すると、ユーザーはサードパーティ製 Linux アプリケーションのインストール、更新、操作、および IOS CLI へのアクセスを行うこともできます。
ゲスト シェル環境は、ネットワーキングではなく、ツール、Linux ユーティリティ、および管理性を意図したものです。
ゲストシェルは、ホスト(ルータ)システムとカーネルを共有します。ユーザーは、ゲスト シェルの Linux シェルにアクセスし、コンテナの rootfs にあるスクリプトおよびソフトウェア パッケージを更新することができます。ただし、ゲスト シェル内のユーザーは、ホストのファイル システムおよびプロセスを変更することはできません。
ゲストシェルコンテナは、IOx を使用して管理されます。IOx は、Cisco IOS XE デバイスのためのシスコのアプリケーション ホスティング インフラストラクチャです。IOx は、シスコ、パートナー、およびサード パーティの開発者によって開発されたアプリケーションおよびサービスをネットワーク エッジ デバイスでシームレスにホスティングすることを、各種の多様なハードウェア プラットフォームにおいて可能にします。
ゲストシェルは通常、システムイメージとともにバンドルされており、Cisco IOS コマンド guestshell enable を使用してインストールできます。ただし、この方法では、イメージのサイズが約 75 MB 増加します。これは、帯域幅が限られているか、LTE を介してイメージをダウンロードする一部のユーザーにとっては問題です。
これらのユーザーを考慮して、ゲストシェルは単一の tar ファイルとして使用できるようになり、他の IOX アプリケーションと同様にダウンロードしてシステムにインストールできます。その結果、ユニバーサル リリース イメージのサイズは増加しません。
(注) |
第 0 日のゲストシェル プロビジョニングは、このアプローチでは機能しません。 |
ゲストシェルは、デフォルトで、管理インターフェイスを介してアプリケーションによる管理ネットワークへのアクセスを許可します。IR1101 のように専用管理ポートを持たないプラットフォームの場合、VirtualPortGroup を IOS 設定内のゲストシェルに関連付けることができます。
ゲストシェルの設定例については、こちらを参照してください。
ゲストシェルをデバイスにインストールするには、tar ファイルをルータにコピーし、次のコマンドを実行します。
app-hosting install appid guestshell package <path to tar file>
ステータスを確認するには、次のコマンドを使用します。
show app-hosting list
ゲストシェルが正常に展開されると、guestshell enable 、guestshell run bash 、guestshell run python3 などの標準のゲストシェルコマンドが機能します。
次のリソースでは、guesthell を使用した Python スクリプトの実行について説明しています。
(注) |
17.5.1 では python3 のみがサポートされています。 |
重要:インストールする前に
デバイスにゲストシェルをインストールする前に、次のコマンドを実行して、デバイスに IOx コンテナキーがプログラムされていることを確認してください。
Router#show software authenticity keys | i Name
Product Name : SFP-VADSL2-I
Product Name : SFP-VADSL2-I
Product Name : IR1101
Product Name : IR1101
Product Name : Cisco Services Containers
Product Name : Cisco Services Containers
出力には、製品名が「Cisco Services Containers」の行が 1 つ以上含まれている必要があります。コンテナキーがデバイスにプログラムされていない場合は、ゲストシェルをインストールできません。
次のようなエラーが表示されます。
*Aug 26 15:47:21.484: %IOSXE-3-PLATFORM: R0/0: IOx: App signature verification failed with non-zero exit code
*Aug 26 15:47:21.588: %IM-6-INSTALL_MSG: R0/0: ioxman: app-hosting: Install failed: App package signature (package.sign)
verification failed for package manifest file package.mf. Re-sign the application and then deploy again.
コンテナキーをデバイスにインストールするためのソフトウェアベースのメカニズムはありません。キーは製造施設でプログラムする必要があります。2020 年 1 月 1 日以降に出荷された IR1100 デバイスでは、コンテナキーがプログラムされています。
ゲストシェルの tar ファイルは、特定のリリースの IOS-XE イメージとともに発行されます。詳細については、https://developer.cisco.com/docs/iox/#!iox-resource-downloads/downloadsを参照してください。