4.3. エクスポート API を使用したシステムインベントリーのエクスポート


エクスポート API を使用してインベントリーデータをエクスポートできます。REST API エントリーポイントである console.redhat.com/api/export/v1 を使用します。

Export Service API は、GET、POST、および DELETE HTTP メソッドをサポートします。API は以下のサービスを提供します。

  • POST /exports
  • GET /exports
  • GET /exports/id
  • DELETE /exports/id
  • GET /exports/id/status

API は非同期で機能します。エクスポート API からエクスポートの POST/exports リクエストを送信し、そのエクスポートの ID を含む応答を受け取ることができます。その後、その ID を使用して、GET/exports/id/status リクエストでエクスポート操作の進行状況を監視できます。生成されたエクスポートが完了したら、ダウンロード (GET/exports/id) または削除 (DELETE/exports/id) できます。

リクエストが成功すると、次のレスポンスが返されます。

  • 200 — 成功
  • 202 — 正常に削除されました (DELETE メソッドの場合)

操作、スキーマ、およびオブジェクトの詳細は、Consoledot Export Service を参照してください。

4.3.1. システムインベントリーエクスポートの要求

エクスポートされたデータファイルを要求する前に、ダウンロード用の一意の ID を取得する必要があります。ID を取得するには、POST リクエストを発行します。サーバーは ID を含む応答を返します。GET/exports/id など、id パラメーターを必要とするリクエストで ID を使用します。

前提条件

  • システムに適した権限を持つトークンベースのサービスアカウント
  • 表示およびエクスポートするシステムの RBAC 権限

    • Inventory:hosts:read (インベントリー内のすべてのシステムの場合は inventory:hosts:read * )
  • ワークスペースのユーザーアクセスロール。ユーザーアクセスロールの詳細は、ワークスペースへのユーザーアクセス を参照してください。

手順

  1. エクスポートサービスのリクエストを作成するか、次のサンプルリクエストコードを使用します。

    {
     "name": "Inventory Export",
     "format": "json",
     "sources": [
         {
           "application": "urn:redhat:application:inventory",
           "resource": "urn:redhat:application:inventory:export:systems"
         }
      ]
    }
    注記

    エクスポート形式として CSV または JSON をリクエストできます。

  2. Hybrid Cloud Console で、API ドキュメント https://console.redhat.com/docs/api/export に移動します。

    注記

    独自のカスタムクライアントを作成したり、自動化で API を使用したりする前に、API ドキュメントを使用して API に対してクエリーの試行および実行が可能です。

  3. POST /export を選択します。
  4. リクエスト本文 ウィンドウの既存のサンプルコードを削除し、リクエストコードをウィンドウに貼り付けます。
  5. Execute をクリックします。このリクエストによりエクスポートプロセスが開始されます。curl リクエストとサーバー応答、および POST 操作の結果コードが表示されます。
  6. サーバー応答の id フィールドを探します。id の文字列値をコピーして保存します。リクエストの id にこの値を使用します。
  7. オプション:GET /exports リクエストを発行します。サーバーは、curl リクエスト、リクエスト URL、および応答コードを返します。
  8. オプション:エクスポートリクエストのステータスを要求するには、GET/exports/id/status リクエストを発行します。
  9. エクスポートが完了したら、id の代わりにコピーした ID 文字列を使用して、GET/exports/id リクエストを発行します。サーバーは、エクスポートファイル (ペイロード) をダウンロードするためのリンクを返します。
  10. Download File をクリックします。ダウンロードが完了すると、ブラウザーに通知メッセージが表示されます。
  11. ブラウザー通知をクリックして、ダウンロードした zip ファイルを見つけます。
注記

サーバーはエクスポートファイルを 7 日間保持します。

4.3.2. エクスポートファイルの削除

エクスポートされたファイルを削除するには、DELETE /exports/id 要求を発行します。

関連情報

4.3.3. Ansible Playbook を使用したインベントリーエクスポートの自動化

Ansible Playbook を使用して、インベントリーエクスポートプロセスを自動化できます。この Playbook は、認証にトークンベースのサービスアカウントを使用するエクスポートサービスの汎用 Playbook です。

手順

  1. https://github.com/jeromemarc/insights-inventory-export に移動します。
  2. inventory-export.yml Playbook をダウンロードします。
  3. Playbook を実行します。Playbook は、エクスポート ID の要求からダウンロードステータスの要求、ダウンロードされたペイロードの要求まで、あらゆることを実行します。

関連情報

サービスアカウントの詳細は、ナレッジベースの記事 Transition of Red Hat Hybrid Cloud Console APIs from Basic authentication to token-based authentication via service accounts を参照してください。

4.3.4. 複数の Insights サービスに対するインベントリーエクスポートサービスの使用

インベントリーエクスポートサービスは、インベントリーや通知などの複数のサービスに使用できます。複数のサービスを要求するには、POST/exports リクスとに要求する各サービスのソース情報を含めます。以下に例を示します。

{
  "name": "Inventory Export multiple sources",
  "format": "json",
  "sources": [
    {
      "application": "urn:redhat:application:inventory",
      "resource": "urn:redhat:application:inventory:export:systems",
      "filters": {}
    },
    {
      "application": "urn:redhat:application:notifications",
      "resource": "urn:redhat:application:notifications:export:events",
      "filters": {}
    }
  ]
}

POST/exports リクエストは、エクスポートごとに一意の ID を返します。

GET/exports リクエストは、要求したサービスごとに 1 つずつ、複数の JSON または CSV ファイルを含む zip ファイルを返します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.