Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

例: テストエージェント

新しいテストエージェントの作成とデプロイ

Paragon Active Assuranceで測定を実行するには、まずParagon Active Assuranceアカウントに1つ以上のテストエージェントを作成する必要があります。このセクションでは、REST API を使用して仮想テストエージェントを作成する方法について説明します。

以下に詳述する次の手順に進みます。

  1. 当初、アカウント「デモ」のインベントリにはテストエージェントがありません。
  2. 「vta1」と呼ばれるテストエージェントは、REST APIを介して作成されます。この段階では、実際のテストエージェントはまだ存在しません(つまり、まだ起動されていません)。
  3. テストエージェントがOpenStackにデプロイされます。(ここでは、そのプラットフォームへの展開を1つの可能性として選択しています。
  4. テストエージェントがコントロールセンターアカウントの「デモ」に接続し、使用できるようになりました。

ステップ1: 最初は、アカウント「demo」にテストエージェントはありません。コントロールセンターのウェブGUIから、以下のスクリーンショットを参照してください。

ステップ2: テストエージェントは、テストエージェントに対する REST API POST 操作を使用して、コントロールセンターで作成されます。

以下のPythonでこれを行います。Python コードを記述するには、REST API でテスト エージェントのすべての構成オプションを調べると便利です。

  • に進みます https://<Control Center host IP>/rest
  • [test_agent] で、 の /accounts/{account}/test_agents/POST 操作を展開します。

  • [説明] で [モデル] をクリックします。

以下では、eth0 が DHCP アドレスを持つ 3 つの物理インターフェイス "eth0"、"eth1"、および "eth2" を持つテストエージェントを作成します。NTP サーバーは eth0 に設定され、eth0 は管理インターフェイス (つまり、コントロールセンターに接続するインターフェイス) でもあります。

(以降の例では、以下のコードと異なる場合を除き、 import コマンドを省略しています。 parser コマンドは常に同じであるため、コマンドも省略されています。REST API トークンとその取得方法については、「 認証トークンの取得」セクションを参照してください。

警告:

署名されたSSL証明書が存在しない場合は、「requests」コマンドに追加 verify=False する必要があります:以下を参照してください。ただし、これは運用環境では強くお勧めしません。暗号化された安全な接続を確保するために、適切な署名付きSSL証明書を取得する必要があります。インストールガイドの サービス設定の章のSSL証明書の設定に関するセクションも参照してください。

別のプログラミング言語を使用したほうがよいことを示すために、curlで同じことを実現する方法を次に示します。

署名されたSSL証明書がない場合は、ここにフラグを追加する --insecure 必要があります。

作成されたテストエージェントは、構成データベースとコントロールセンターに存在します。以下のテストエージェントインベントリのスクリーンショットで、テストエージェント「vta1」が表示されています。

ステップ3: ここで、テストエージェント「vta1」を導入します。

このガイドでは、OpenStackに仮想テストエージェントを導入します。ただし、他の仮想化環境での展開も同様に可能です。

OpenStackでは、テストエージェントはクラウド初期化のユーザーデータを使用して、コントロールセンターへの接続方法に関する情報を取得します。具体的には、ユーザー データ テキスト ファイルの内容は次のとおりです。

メモ:

行と #cloud-config 行が存在し、残りの行 netrounds_test_agent はインデントされている必要があります。

詳細については、 https://www.juniper.net/documentation/product/en_US/paragon-active-assurance から入手できるドキュメント「OpenStackに仮想テストエージェントをデプロイする方法」を参照してください。

テストエージェントがデプロイされ、コントロールセンターに接続されると、構成がコントロールセンターからテストエージェントにプッシュされます。

ステップ4: これで、テストエージェントがコントロールセンターでオンラインになり、設定が完了しました。これで、テストエージェントをテストおよび監視で使用できる状態になります。これらのセクションを参照してください。

Paragon Active Assuranceアカウント内のテストエージェントのリスト表示

以下は、Paragon Active Assuranceアカウントにテストエージェントを一覧表示するためのPythonコードの例です。

このコードを実行すると、次のような出力が得られます。

テストエージェントの構成データとステータスの取得

個々のテストエージェントに GET 操作を適用することで、テストエージェントとそのインターフェイスの構成情報とステータス情報の両方を取得します。状態情報には、オンライン状態、稼働時間、CPU 負荷、およびメモリ使用量が含まれます。

出力は次のようになります。

テストエージェントの構成の変更

テストエージェントの構成を変更するには、PUTコマンドを使用します。

PUTでは、新しいテストエージェント の作成とデプロイのセクションで説明したようにテストエージェントを作成する場合と同様に、JSONデータで設定全体を指定する必要があります。したがって、これを行うためのコードは、URLが特定の既存のテストエージェントを指す点を除いて、テストエージェントの作成の場合と同じです

と PUT コマンド

は POST の代わりに使用されます。

テストエージェントソフトウェアのアップデート

REST APIは、すべてのテストエージェントまたは指定されたサブセットのテストエージェントソフトウェアを最新バージョンに更新するためのPOST操作を提供します。

以下は、テストエージェントのサブセットにソフトウェアアップデートを適用する方法の例です。

すべてのテストエージェントでソフトウェアをアップデートする場合は、空のまま json_data にしてスイッチをURLに追加します ?all

テストエージェント: 高度な例

テストエージェント(またはREST API内の他のエンティティ)のすべての設定オプションを利用するには、REST API Swaggerスキーマに精通している必要があります。

前述のように、JSON 形式のスキーマへのリンクがページの上部に表示されます。これはかなり読みにくいです。コンテンツを解析しやすくするために、ファイルを次のページにコピーできます。

https://editor.swagger.io/

これにより、スキーマがより人間が読めるYAMLに変換されます。

以下の例では、スキーマの一部がアルファベット順に並べ替えられるのではなく、読みやすくするために再配置されていることに注意してください。

例えば、静的IPv4アドレスでテストエージェントを設定するとします。

これを行うには、HTTP POST リクエストの を解釈bodyします。

最終的な目標は、次の要求を作成することです。

問題は、これがフォーマットする方法であることをどうやって知るのかということです。

正しい構文を見つけるには、テストエージェントスキーマを参照する必要があります。実際、その拡張バージョンを確認する必要があります。 TestAgentExtendedSchema Swagger スキーマで以下を検索します。

まず、このスキーマには および description as 属性がありますname。したがって、HTTP 要求bodyは次のように開始する必要があります。

propertiesの一部は として定義されるread-only。これらはサーバーによって無視されるため、要求から除外できます。

次に、インターフェイス構成、より具体的にはIPアドレスについて説明しますが、これにはもう少し作業が必要です。

アドレスはプロパティ interface_config で指定され、以下に示すようにへの InterfaceConfigSchema 参照が含まれています。

リクエストに追加することから始めることができます。

interface_configこれにより空の が追加されるため、interface_configJSONオブジェクトの構築方法を理解するには、InterfaceConfigSchemaスキーマの部分に移動する必要があります。

スキーマには、必須の名前 type のプロパティがあります。これは、定義するインターフェイスのタイプを指定するために使用されます。これには type 有効な選択肢のリストがあり、スキーマ enumでは .

discriminatorスキーマの部分は、使用する必要がある特定の型を指すために使用されます。

オブジェクト指向プログラミング(OOP)に精通している人にとって、これへのアナロジーは「継承」、またはポリモーフィズムです。

には InterfaceConfigSchema 、で enum定義されているサブタイプのリストがあります。

この場合、「通常の」ネットワークインターフェイスが必要なので、として指定physicaltypeする必要があります。

これで、型のスキーマ physical を検索できます。

ここで、属性は、インターフェイスタイプがからのすべてのプロパティInterfaceConfigSchemapropertiesallOfリストされたインラインを持つことを示すphysicalために使用されます。

つまり、OOP用語ではfromInterfaceConfigSchemaを「継承」propertiesします。

だから私たちは構築を続けることができます HTTPPOSTリクエスト body。静的IPv4アドレスが必要なので、IPv6用ではなく指定しますaddressaddress6

したがって、同じプロセスを使用して、次のように検索します InterfaceIPv4AddressSchema

ここでも、type使用する特定のスキーマを識別するために使用される を指定します。私たちは、でenum見つかったようにしたいstatic_ip4:

次に、次のスキーマ static_ip4を検索します。

ここでは、 ip プロパティを指定する必要があることがわかります。一般に、Netrounds では、IP アドレスは CIDR 表記を使用して入力されます。

ここでの他の properties すべてはオプションです。

これで、JSONを完成させることができます。

テストエージェントの削除

テストが完了したら、ユースケースによってはテストエージェントを削除することが関連する場合があります。

以下は、REST APIを介してこれを行うためのコードです。