自動化決定の使用


Red Hat Ansible Automation Platform 2.6

Event-Driven Ansible Controller を設定して使用し、自動化を強化および拡張する

Red Hat Customer Content Services

概要

このガイドは、Event-Driven Ansible Controller を設定して、新しいプロジェクト、決定環境、Ansible Automation Platform Controller に対して認証するためのトークン、およびルールブックアクティベーションをセットアップするのに役立ちます。

はじめに

Event-Driven Ansible Controller は、一貫性と復元力を実現しながら IT の速度と俊敏性を向上させることで、自動化を強化および拡張する新しい方法です。Red Hat によって開発されたこの機能は、シンプルさと柔軟性を考慮して設計されています。

Red Hat ドキュメントへのフィードバック (英語のみ)

このドキュメントの改善に関するご意見がある場合や、エラーを発見した場合は、https://access.redhat.com からテクニカルサポートに連絡してリクエストを送信してください。

第1章 Event-Driven Ansible Controller の概要

Event-Driven Ansible は、他のソフトウェアベンダーのモニタリングツールなどのイベントソースと連携する、拡張性が高く柔軟な自動化機能です。このようなツールは、IT ソリューションを監視してイベントを特定し、ルールブックに記述された変更や対応を自動的に実装して、そのイベントを処理します。

ユーザー設定は次の手順で行います。

注記
  • Event-Driven Ansible Controller の API ドキュメントは、https://<gateway-host>/api/eda/v1/docs で入手できます。
  • 高可用性の要求を満たすために、Event-Driven Ansible Controller は、集中型の Redis (REmote DIctionary Server) を Ansible Automation Platform UI と共有します。Redis が利用できない場合、プロジェクトを作成または同期したり、ルールブックアクティベーションを有効にしたりすることはできません。
重要

Ansible Automation Platform 2.6 の新規インストールでは、Event-Driven Ansible controller の API を使用して組織、チーム、またはユーザーを管理するには、変更を Ansible Automation Platform の残りのコンポーネントに伝播するために最大 15 分の自動同期が必要です。発生する可能性のあるエラーを回避し、即時アクセスを確保するには、代わりにプラットフォームゲートウェイ API または統合 UI を使用します。

第2章 認証情報

認証情報を使用すると、決定環境、ルールブックアクティベーション、Event-Driven Ansible Controller のプロジェクト、Automation Controller のプロジェクトなどのリソースでの認証に使用できるシークレットを保存できます。

認証情報は、マシンに対してジョブを起動したり、バージョン管理システムからプロジェクトコンテンツをインポートしたりするときにユーザーを認証します。

認証情報をユーザーに公開せずに、ユーザーとチームにこれらの認証情報を使用する権限を付与できます。ユーザーが別のチームに異動する場合や、組織から離職する場合でも、そのユーザーの認証情報が以前に使用可能であったという理由だけで、すべてのシステムのキーを再設定する必要はありません。

注記

Automation Controller と Event-Driven Ansible Controller のコンテキストでは、extra_vars と認証情報の両方を使用してさまざまな情報を保存できます。認証情報は、セキュリティーに優れ、管理が一元化されているため、パスワードや API キーなどの機密情報を保存する方法として推奨されます。一方、extra_vars は動的な非機密データを渡すのに適しています。

2.1. 認証情報のリストビュー

Ansible Automation Platform にログインし、Automation DecisionsInfrastructureCredentials を選択すると、Credentials ページに Decision Environment Container Registry の認証情報が事前に読み込まれます。独自の認証情報を作成すると、その認証情報がこのリストビューに追加されます。

メニューバーから、Name 検索フィールドで認証情報を検索できます。

メニューバーには、以下のオプションもあります。

  • Manage columns - このオプションをクリックすると、リストビューでフィールドを表示する方法を選択できます。フィールドを配置する方法は 4 つあります。

    • Column - テーブル内の列を表示します。
    • Description - 項目が展開されたときに、列の幅全体に説明を表示します。
    • Expanded - 項目が展開されたときに、列を詳細として表示します。
    • Hidden - 列を非表示にします。
  • List view または Card view - これらの表示を選択するには、該当するアイコンをクリックします。

2.2. 認証情報のセットアップ

選択したソースプラグインまたはプライベートコンテナーレジストリーで使用する認証情報を作成できます。認証情報は、チームまたは個人に提供できます。

手順

  1. Ansible Automation Platform ダッシュボードにログインします。
  2. ナビゲーションパネルから、Automation DecisionsInfrastructureCredentials を選択します。
  3. Create credential をクリックします。
  4. 以下を入力します。

    Name
    名前を入力します。
    Description
    このフィールドは任意です。
    Organization
    リストをクリックして組織を選択するか、Default を選択します。
    Credential type

    リストをクリックして認証情報タイプを選択します。

    注記

    認証情報タイプを選択すると、Type Details セクションと、選択した認証情報タイプに適用できるフィールドが表示されます。

  5. 選択した認証情報タイプに該当するフィールドに入力します。
  6. Create credential をクリックします。

次のステップ

認証情報を保存すると、認証情報の詳細ページが表示されます。そのページまたは Credentials リストビューから、認証情報を編集または削除できます。

2.3. 認証情報の編集

既存の認証情報を編集し、組織に応じて適切なアクセスレベルを確保できます。

手順

  1. 以下のいずれかの方法を使用して、認証情報を編集します。

    • Credentials リストビューで、必要な認証情報の横にある Edit credential アイコンをクリックします。
    • Credentials リストビューで認証情報の名前を選択し、Edit credential をクリックします。
  2. 適切な詳細を編集し、Save credential をクリックします。

2.4. 認証情報の複製

既存の認証情報と同様のフィールド入力情報を使用して新しい認証情報を設定する場合は、手動で入力する代わりに、詳細タブの Duplicate credential 機能を使用して情報を複製できます。認証情報の設定には時間がかかる場合がありますが、既存の認証情報から必要なフィールドを複製する機能により、時間が節約され、場合によっては人為的エラーの可能性も軽減されます。

手順

  1. Credentials リストページで、複製する認証情報の名前をクリックします。認証情報の Details タブに移動します。
  2. Details タブの右上にある Duplicate credential をクリックします。

    注記

    Credentials リストページで、目的の認証情報の横にある Duplicate credential アイコンをクリックすることもできます。

    選択した認証情報が複製されたことを確認するメッセージ ("<Name of credential> duplicated.") が表示されます。

  3. Back to credentials タブをクリックして、複製した認証情報を表示します。

    複製した認証情報の名前は、元の認証情報名の後ろに 24 時間形式のタイムスタンプが付いたものになります (例: <認証情報の名前> @ 17:26:30)。

  4. 複製した認証情報の希望する詳細を編集します。
  5. Save credential をクリックします。

2.5. 認証情報の削除

組織で認証情報が必要なくなった場合は、削除できます。

手順

  1. 以下のいずれかの方法を使用して、認証情報を削除します。

    • Credentials リストビューで、必要な認証情報の横にある More Actions アイコン をクリックし、Delete credential をクリックします。
    • Credentials リストビューで認証情報の名前を選択し、Edit credential の横にある More Actions アイコン をクリックして、Delete credential をクリックします。
  2. ポップアップウィンドウで、Yes, I confirm that I want to delete this credential を選択します。

    注記

    認証情報が組織内の他のリソースによってまだ使用されている場合は、認証情報を削除できないことを知らせる警告メッセージが表示されます。また、認証情報がイベントストリームで使用されている場合は、イベントストリームが削除されるか、別の認証情報に割り当てられるまで、認証情報を削除することはできません。一般に、使用中の認証情報を削除するとアクティベーションが壊れる可能性があるため、削除することは避けてください。

  3. Delete credential をクリックします。

結果

各認証情報の横にあるチェックボックスを選択し、メニューバーの More Actions アイコン をクリックしてから、Delete selected credentials をクリックして、一度に複数の認証情報を削除できます。

第3章 認証情報タイプ

Event-Driven Ansible Controller には、プロジェクトの同期、ルールブックアクティベーションの実行、自動化実行 (Automation Controller) によるジョブテンプレートの実行、コンテナーレジストリーからのイメージの取得、イベントストリームによるデータの処理に使用できるいくつかの認証情報タイプが組み込まれています。

これらの組み込みの認証情報タイプは編集できません。他のシステムによる認証に対応した認証情報タイプが必要な場合は、ソースプラグインで使用できる独自の認証情報タイプを作成できます。各認証情報タイプには、入力設定とインジェクター設定が含まれています。これらの設定を Ansible ルールブックに渡すことで、ソースを設定できます。詳細は、カスタム認証情報タイプ を参照してください。

automation controller を通じてジョブテンプレートを実行する場合は、外部シークレット管理の認証情報タイプ にリストされている外部シークレット管理システムから認証情報の値を取得できます。

3.1. 外部シークレット管理の認証情報の種類

組み込みの認証情報タイプに加えて、Event-Driven Ansible はさまざまな外部シークレット管理認証情報タイプをサポートしています。これらの認証情報タイプにより、ルールブックは API キーやパスワードなどの機密情報を組織の集中管理されたシークレット保管庫から直接安全に取得できます。

Event-Driven Ansible controller では、次の外部認証情報タイプを使用できます。

  • AWS Secrets Manager
  • Azure Key Vault
  • Centrify Vault Credential Provider
  • CyberArk Central Credential Provider
  • CyberArk Conjur Secrets Manager
  • HashiCorp Vault Secret
  • HashiCorp Vault Signed SSH
  • Thycotic DevOps Secrets Vault
  • Thycotic Secret Server
  • GitHub App Installation Access Token

ルールブックのアクティベーションでこれらの認証情報を使用するプロセスは、Automation Controller での使用方法と一致しています。詳細は、シークレット管理システム を参照してください。

その他の参考資料

3.2. カスタム認証情報タイプ

システム管理者は、YAML または JSON ライクな定義を使用して、標準形式の既存の認証情報タイプと同様に機能するカスタム認証情報タイプを定義できます。

各認証情報タイプでは、該当する場合、Input Configuration フィールドと Injector Configuration フィールドに独自の固有の設定が表示されます。YAML 形式と JSON 形式の両方が設定フィールドでサポートされています。

カスタム認証情報は、認証情報を注入する手段として Ansible の追加変数をサポートしています。

ルールブックアクティベーションに、1 つ以上のクラウド、Vault、および Red Hat Ansible Automation Platform の認証情報タイプを割り当てることができます。

注記
  • 新しい認証情報タイプを作成するときは、extra_vars での競合を回避する必要があります。
  • 追加の変数名の先頭を EDA_ にすることはできません。そのような変数名は予約されているためです。
  • 認証情報タイプの作成と編集および Injector configuration フィールドの表示を行うには、システム管理者 (スーパーユーザー) 権限が必要です。

独自の認証情報タイプをカスタマイズすると、組み込みの認証情報タイプのリストとともに、認証情報タイプページに表示されます。

3.2.1. 入力設定

入力設定には 2 つの属性があります。

  • フィールド - 認証情報タイプのプロパティー群。
  • 必須 - 必須フィールドのリスト。

選択した認証情報タイプに応じて、フィールドに複数のプロパティーを設定できます。

Expand
表3.1 入力設定フィールドのプロパティー
フィールド説明必須 (はい/いいえ)

id

フィールドの一意の ID。文字列型で、変数名を格納する必要があります。

はい

type

文字列型またはブール型にすることができます。

いいえ、デフォルトは文字列です。

label

UI 要素をレンダリングするときに UI によって使用されます。

はい

secret

暗号化されます。

いいえ、デフォルトは false です。

multiline

フィールドにファイルからのデータが含まれる場合は、multiline を True に設定できます。

いいえ、デフォルトは false です。

help_text

このフィールドに関連するヘルプテキスト。

いいえ

3.2.2. インジェクター設定

インジェクター設定を使用すると、入力設定フィールドから情報を取得し、その情報を、ルールブックアクティベーションの実行時に ansible-rulebook に送信できるインジェクタータイプにマッピングできます。Event-Driven Ansible は、次のインジェクタータイプをサポートします。

  • 環境変数 (env) - 基礎となるパッケージまたは共有ライブラリーのソースプラグインで使用されます。
  • Ansible 追加変数 (extra_vars) - ルールブックの条件、アクション、またはソースプラグインパラメーターの置換に使用されます。
  • ファイルベースのテンプレート (file) - ソースプラグインで必要になる可能性のある証明書やキーなどの認証情報入力からファイルコンテンツを作成するために使用されます。ファイルインジェクターを使用すると、これらの証明書とキーを決定環境に保存しなくても、実行時に ansible-rulebook に提供できます。その結果、ansible-rulebook は一時ファイルを作成し、そのファイル名には eda.filename 変数を使用してアクセスできます。この変数は、ファイルが作成された後に自動的に作成されます (例: "{{eda.filename.my_cert}}”)。
重要

ルールブックアクティベーションと認証情報タイプインジェクターで extra_vars を作成する場合は、キー名に eda または ansible を使用しないでください。これは、内部使用と競合し、ルールブックアクティベーションと認証情報タイプの作成の両方で失敗する可能性があるためです。

上記のインジェクタータイプは、最上位レベルで重複キーを持つことができませんが、インジェクターを使用すると、上記のインジェクタータイプの 1 つとしてルールブックに注入できるようにフィールドが調整されます。ルールブックに username や password などのパラメーターを必要とする 2 つのソースがある場合、ルールブックとともにインジェクターを使用すると、各ソースの引数を調整できます。

サンプルのインジェクターと入力を表示するには、それぞれ次の GitHub gist を参照してください。

3.3. 新しい認証情報タイプの作成

サポートされているデフォルトの認証情報タイプに基づいて、選択したソースプラグインで使用する認証情報タイプを作成できます。認証情報タイプは、チームまたは個人に提供できます。

手順

  1. Ansible Automation Platform ダッシュボードにログインします。
  2. ナビゲーションパネルから、Automation DecisionsInfrastructureCredential Types を選択します。
  3. Create credential type をクリックします。
  4. 以下を入力します。

    Name
    名前を入力します。
    Description
    このフィールドは任意です。
  5. Input Configuration フィールドで、対象のタイプの順序付きフィールドのセットを定義する入力スキーマを指定します。形式は YAML または JSON です。

    YAML

    fields:
      - type: string
        id: username
        label: Username
      - type: string
        id: password
        label: Password
        secret: true
    required:
      - username
      - password
    Copy to Clipboard Toggle word wrap

    YAML ページ でさらに YAML の例をご覧ください。

    JSON

    {
    "fields": [
      {
      "type": "string",
      "id": "username",
      "label": "Username"
      },
      {
      "secret": true,
      "type": "string",
      "id": "password",
      "label": "Password"
       }
      ],
     "required": ["username", "password"]
    }
    Copy to Clipboard Toggle word wrap

    その他の JSON の例は、JSON Web サイト をご覧ください。

  6. Injector Configuration フィールドに、認証情報タイプが注入できる値を指定する環境変数または追加変数を入力します。形式は YAML または JSON に指定できます (前の手順の例を参照)。

    JSON 形式の次の設定は、各フィールドとその使用方法を示しています。

    {
        "extra_vars": {
          "some_extra_var": "{{ username }}:{{ password }}"
      }
    }
    Copy to Clipboard Toggle word wrap
  7. Create credential type をクリックします。

    新しく作成した認証情報タイプが、認証情報タイプのリストに表示されます。

  8. Edit credential type Edit アイコンをクリックして、認証情報タイプのオプションを変更します。

検証

  • 新しい認証情報を作成するときに、新しく作成した認証情報タイプが Credential Type リストから選択できることを確認します。

次のステップ

  • Edit ページでは、詳細を変更したり、認証情報を削除したりできます。
  • Delete オプションが無効になっている場合は、その認証情報タイプが認証情報によって使用されています。認証情報タイプを削除する前に、それを使用しているすべての認証情報からその認証情報タイプを削除する必要があります。

関連情報

  • link:https://docs.redhat.com/en/do cumentation/red_hat_ansible_automation_platform/2.5/html/using_automation_decisions/eda-credentials#eda-set-up-credential[Setting up credentials]

第4章 プロジェクト

プロジェクトはルールブックの論理的なコレクションです。これらは Git リポジトリーで、Ansible コレクション内の Event-Driven Ansible コンテンツ用に定義されたパス (プロジェクトのルートにある /extensions/eda/rulebooks) に配置する必要があります。

重要

高可用性の要求を満たすために、Event-Driven Ansible Controller は、集中型の Redis (REmote DIctionary Server) を Ansible Automation Platform UI と共有します。Redis が利用できない場合は、プロジェクトを作成したり同期したりできません。

4.1. 新しいプロジェクトの設定

Event-Driven Ansible Controller で、ルールブックを管理および保存するためのプロジェクトを設定できます。

前提条件

  • Ansible Automation Platform ダッシュボードにコンテンツコンシューマーとしてログインしている。
  • 必要に応じて認証情報を設定した。詳細は、認証情報のセットアップ セクションを参照してください。
  • ルールブックを含む既存のリポジトリーがある。

手順

  1. Ansible Automation Platform ダッシュボードにログインします。
  2. Automation DecisionsProjects に移動します。
  3. Create project をクリックします。
  4. 以下を入力します。

    Name
    プロジェクト名を入力します。
    Description
    このフィールドは任意です。
    Source control type
    使用できる Source control type は Git のみです。このフィールドは任意です。
    Source control URL

    GitHub や GitLab などのリポジトリーの Git、SSH、または HTTP[S] プロトコルアドレスを入力します。この必須フィールドは編集可能です。このフィールドの編集がルールブックのアクティブ化に与える影響に関する詳細は、プロジェクトの編集 を参照してください。

    注記

    このフィールドは、SSH 秘密鍵または秘密鍵フレーズを受け入れます。これらの秘密鍵の使用は、git@ で開始するプロジェクト URL でなければ有効になりません。

    プロキシー
    これは、HTTP または HTTPS サーバーにアクセスするために使用されます。このフィールドはオプションであり、編集可能です。このフィールドの編集がルールブックのアクティブ化に与える影響に関する詳細は、プロジェクトの編集 を参照してください。
    Source control branch/tag/commit
    これはチェックアウトするブランチです。ブランチに加えて、タグ、コミットハッシュ、任意の参照を入力できます。一部のコミットハッシュと参照を使用するには、カスタム refspec も指定する必要がある場合があります。このフィールドはオプションであり、編集可能です。このフィールドの編集がルールブックのアクティブ化に与える影響に関する詳細は、プロジェクトの編集 を参照してください。
    Source control refspec
    取得する refspec (Ansible git モジュールに渡されます)。このパラメーターにより、他の方法では利用できないブランチフィールド経由の参照にアクセスできるようになります。このフィールドはオプションであり、編集可能です。このフィールドの編集がルールブックのアクティブ化に与える影響に関する詳細は、プロジェクトの編集 を参照してください。
    Source control credential
    これは、提供された Source control URL で認証するために使用されるオプションの認証情報です。
    Content signature validation credential
    コンテンツ署名を有効にして、プロジェクトの同期時にコンテンツがセキュアな状態に保たれていることを検証します。コンテンツが改ざんされている場合、ジョブは実行されません。このフィールドは任意です。
    オプション

    Verify SSL オプションはデフォルトで有効になっています。このオプションが有効になっていると、プロジェクトのインポート時に SSL が HTTPS で検証されます。

    注記

    自己署名付き証明書を使用するローカルリポジトリーがある場合は、このオプションを無効にできます。

  5. Create project を選択します。

結果

プロジェクトが作成され、Projects ページで管理できるようになります。

新しいプロジェクトを保存すると、プロジェクトの詳細ページが表示されます。そのページまたは Projects リストビューから、プロジェクトを編集または削除できます。

4.2. Projects リストビュー

Projects ページでは、作成したプロジェクトを ステータス および Git ハッシュ とともに確認できます。

注記

Source control でルールブックが変更された場合は、Projects リストビューでプロジェクトの横にある同期アイコンを選択することで、プロジェクトを再同期できます。Git ハッシュ の更新は、そのリポジトリー上の最新のコミットを表します。更新されたプロジェクトを使用する場合は、アクティベーションを再開または再作成する必要があります。

4.3. プロジェクトの編集

プロジェクトは、作成後にさまざまな側面を変更できます。変更内容によっては、ルールブックのアクティベーションが影響を受ける可能性があり、確認して再起動する必要があります。

手順

  1. Projects リストビューで、目的のプロジェクトの横にある More Actions アイコン を選択します。Edit ページが表示されます。
  2. 必要なフィールドを編集します。

    重要

    プロジェクトの Source control URLSource control ブランチ/タグ/コミット、または Source control refspec を更新すると、Event-Driven Ansible によってプロジェクトの再同期が自動的にトリガーされます。このプロセスは、Event-Driven Ansible コントローラー内で利用可能なルールブックを更新し、既存のルールブックのアクティベーションに大きな影響を与える可能性があります。

    • ルールブックのコンテンツの更新: ルールブックのコンテンツが変更されても、実行中のアクティベーションでは古いコンテンツが引き続き使用されます。新しいコンテンツを適用するには、影響を受けるルールブックのアクティベーションを再起動する必要があります。更新するルールブックのコンテンツがイベントストリームを使用するアクティベーションにアタッチされている場合は、更新を適用した後でイベントストリームをそのアクティベーションに再度アタッチし、アクティベーションを再起動する必要があります。
    • 新しいルールブック: リポジトリーに追加された新しいルールブックは、同期後にデータベースで使用できるようになります。
    • 削除されたルールブック: 削除されたルールブックは、同期時にデータベースから削除されます。ただし、関連するアクティベーションは引き続き実行され、再起動できます。ソースルールブックから切り離されたアクティベーションを確認して更新します。
  3. Save project を選択します。

4.4. プロジェクトの削除

プロジェクトを削除する必要がある場合、Event-Driven Ansible Controller インターフェイスにある複数のオプションを使用できます。

手順

  1. プロジェクトを削除するには、次のいずれかを実行します。

    • Projects リストビューで、目的のプロジェクトの横にあるチェックボックスをオンにし、ページメニューから More Actions アイコン をクリックします。
    • Projects リストビューで、目的のプロジェクトの横にある More Actions アイコン をクリックします。
  2. Delete project を選択します。
  3. Permanently delete projects ウィンドウで、Yes, I confirm that I want to delete this project を選択します。
  4. Delete project を選択します。

第5章 決定環境

決定環境は、Ansible ルールブックを実行するコンテナーイメージです。決定環境は、自動化の依存関係をやり取りするための共通言語を作り出し、自動化環境をビルドおよび配布するための標準的な方法を提供します。デフォルトの決定環境は、Ansible-Rulebook にあります。

独自の決定環境を作成するには、ansible-builder のインストール および Ansible Automation Platform 内での Event-Driven Ansible のカスタム決定環境のビルド を参照してください。

5.1. ansible-builder のインストール

イメージをビルドするには、Podman または Docker と ansible-builder Python パッケージがインストールされている必要があります。

--container-runtime オプションは、使用する Podman または Docker 実行可能ファイルに対応している必要があります。

決定環境イメージをビルドするときは、Ansible Automation Platform がデプロイされるアーキテクチャーをサポートする必要があります。

詳細は、Ansible Builder のクイックスタート または 実行環境の作成と使用 を参照してください。

5.2. Event-Driven Ansible のカスタム決定環境のビルド

決定環境は、Ansible ルールブックの実行に合わせてカスタマイズされた実行環境です。

Automation Controller の Ansible Playbook を実行する実行環境と同様に、決定環境は Event-Driven Ansible Controller のルールブックを実行するためのものです。

Event-Driven Ansible 用のカスタム決定環境を作成することで、デフォルトの決定環境にはない、カスタム管理またはサードパーティーのイベントソースプラグインを提供できます。

前提条件

  • Ansible Automation Platform 2.5 以降
  • Event-Driven Ansible
  • Ansible Builder 3.0 以降
重要
  • ルールブックアクティベーションの失敗を防ぐために、Ansible Automation Platform で適切な Event-Driven Ansible Controller 決定環境を使用してください。

    • Event-Driven Ansible Controller を Ansible Automation Platform 2.4 に接続する場合は、registry.redhat.io/ansible-automation-platform-24/de-minimal-rhel9:latest を使用する必要があります。
    • Event-Driven Ansible Controller を Ansible Automation Platform 2.6 に接続する場合は、registry.redhat.io/ansible-automation-platform-25/de-minimal-rhel9:latest を使用する必要があります。

手順

  1. Ansible Builder で de-minimal をベースイメージとして使用して、カスタム決定環境をビルドします。このイメージは、Ansible Automation Platform minimal decision environment で Red Hat が提供しているベースイメージからビルドされています。

    以下は、ansible.eda コレクションでカスタム決定環境をビルドするために、ベースイメージとして de-minimal を使用する Ansible Builder 定義ファイルの例です。

    version: 3
    
    images:
      base_image:
        name: 'registry.redhat.io/ansible-automation-platform-25/de-minimal-rhel9:latest'
    
    dependencies:
      galaxy:
        collections:
          - ansible.eda
      python_interpreter:
        package_system: "python39"
    
    options:
      package_manager_path: /usr/bin/microdnf
    Copy to Clipboard Toggle word wrap
  2. オプション:他の Python パッケージまたは RPM が必要な場合は、以下を 1 つの定義ファイルに追加します。

    version: 3
    
    images:
      base_image:
        name: 'registry.redhat.io/ansible-automation-platform-25/de-minimal-rhel9:latest'
    
    dependencies:
      galaxy:
        collections:
          - ansible.eda
      python:
        - six
        - psutil
      system:
        - iputils [platform:rpm]
      python_interpreter:
        package_system: "python39"
    
    options:
      package_manager_path: /usr/bin/microdnf
    Copy to Clipboard Toggle word wrap

5.3. 新しい決定環境の設定

デフォルトまたはカスタムの決定環境を使用して、決定環境を Event-Driven Ansible Controller にインポートできます。

前提条件

  • 必要に応じて認証情報を設定した。詳細は、認証情報のセットアップ セクションを参照してください。
  • 決定環境イメージをイメージリポジトリーにプッシュしたか、registry.redhat.io にある de-minimal イメージを使用することを選択した。

手順

  1. Ansible Automation Platform にログインします。
  2. Automation DecisionsDecision Environments に移動します。
  3. Create decision environment をクリックします。
  4. 以下を入力します。

    Name
    名前を入力します。
    Description
    このフィールドは任意です。
    Organization
    決定環境に関連付ける組織を選択します。
    Image
    これは、コンテナーレジストリー、イメージ名、およびバージョンタグを含む完全なイメージの場所です。
    Credential
    このフィールドは任意です。これは、決定環境イメージを使用するために必要な認証情報です。
  5. Create decision environment を選択します。

結果

これで決定環境が作成され、Decision Environments ページで管理できるようになります。

新しい決定環境を保存すると、決定環境の詳細ページが表示されます。そのページまたは Decision Environments リストビューから、決定環境を編集または削除できます。

第6章 Red Hat Ansible Automation Platform 認証情報

Ansible Automation Platform 2.6 に Event-Driven Ansible Controller をデプロイすると、Automation Controller の URL とユーザー名およびパスワードを使用して Automation Controller に接続するための Red Hat Ansible Automation Platform 認証情報を作成できます。作成したら、Red Hat Ansible Automation Platform の認証情報をルールブックに割り当て、それを使用してルールブックアクティベーションを実行できます。これらの認証情報を使用すると、Automation Controller と Event-Driven Ansible Controller 間の通信を簡単に設定できるようになり、ルールブックのアクティブ化によってジョブテンプレートを起動できるようになります。

注記

Ansible Automation Platform 2.4 を使用して Event-Driven Ansible Controller をデプロイした場合は、コントローラートークンで Automation Controller と Event-Driven Ansible Controller を接続している可能性があります。これらのコントローラートークンは Ansible Automation Platform 2.6 では非推奨になりました。非推奨のコントローラートークンとそれに関連付けられたルールブックアクティベーションを削除するには、Red Hat Ansible Automation Platform 認証情報の設定 に進む前に、Ansible Automation Platform 2.6 でのコントローラートークンの置き換え から始まる次の手順を完了してください。

6.1. Red Hat Ansible Automation Platform 2.6 でのコントローラートークンの置き換え

Red Hat Ansible Automation Platform 2.6 で Event-Driven Ansible Controller を使用するには、コントローラートークンが非推奨になっているため、環境で設定されている従来のコントローラートークンを Red Hat Ansible Automation Platform の認証情報に置き換える必要があります。

6.1.1. コントローラートークンを使用したルールブックアクティベーションの削除

コントローラートークンを置き換えるには、それに関連付けられていたルールブックアクティベーションを削除する必要があります。

手順

  1. Ansible Automation Platform ダッシュボードにログインします。
  2. 上部のナビゲーションパネルから、Automation DecisionsRulebook Activations を選択します。
  3. コントローラートークンを使用するルールブックアクティベーションを選択します。
  4. Rulebook Activation enabled/disabled トグルの横にある More Actions アイコン を選択します。
  5. Delete rulebook activation を選択します。
  6. ウィンドウで、Yes, I confirm that I want to delete these X rulebook activations を選択します。
  7. Delete rulebook activations を選択します。

6.1.2. コントローラートークンの削除

Red Hat Ansible Automation Platform の認証情報を設定する前に、既存のコントローラートークンを削除する必要があります。

前提条件

  • コントローラートークンを使用するすべてのルールブックアクティベーションを削除した。

手順

  1. Ansible Automation Platform ダッシュボードにログインします。
  2. 上部のナビゲーションパネルからプロファイルを選択します。
  3. User details をクリックします。
  4. Tokens タブを選択します。
  5. 以前のコントローラートークンをすべて削除します。

次のステップ

コントローラートークンとルールブックアクティベーションを削除したら、Red Hat Ansible Automation Platform 認証情報の設定 に進みます。

6.2. Red Hat Ansible Automation Platform 認証情報の設定

Automation Controller の URL とユーザー名とパスワードを使用して、Automation Controller に接続するための Red Hat Ansible Automation Platform 認証情報を作成します。

前提条件

  • ユーザーを作成した。
  • Automation Controller にアクセスするための URL と認証情報を取得した。

手順

  1. Ansible Automation Platform ダッシュボードにログインします。
  2. ナビゲーションパネルから、Automation DecisionsInfrastructureCredentials を選択します。
  3. Create credential をクリックします。
  4. 以下を入力します。

    Name
    名前を入力します。
    Description
    このフィールドは任意です。
    Organization
    リストをクリックして組織を選択するか、Default を選択します。
    Credential type

    リストをクリックして、Red Hat Ansible Automation Platform を選択します。

    注記

    認証情報タイプを選択すると、Type Details セクションと、選択した認証情報タイプに適用できるフィールドが表示されます。

    警告

    バックアップおよび復元操作を使用して Ansible Automation Platform インスタンスを別のクラスターまたは新しいホスト名セットに移行する予定がある場合は、Red Hat Ansible Automation Platform の認証情報が破損し、ルールブックのアクティベーションに失敗します。接続を復元するには、復元操作が完了した後、Automation Controller URL と関連する認証情報を手動で編集して更新する必要があります。

  5. 必須の Red Hat Ansible Automation Platform フィールドに、Automation Controller URL を入力します。

    注記

    Event-Driven Ansible Controller 2.6 と Automation Controller 2.4 の場合は、https://<your_controller_host> などを使用してください。

    Ansible Automation Platform 2.6 の場合は、https://<your_gateway_host>/api/controller/ などを使用してください。

  6. 有効な UsernamePassword または Oauth Token を入力します。
  7. Create credential をクリックします。

次のステップ

この認証情報を作成したら、それを使用してルールブックアクティベーションを設定できます。

第7章 ルールブックアクティベーション

ルールブックは、イベント駆動型自動化モデルで IT アクションを実行するために Event-Driven Ansible が使用する条件付きルールのセットです。ルールブックは、どのソースでイベントをチェックするか、そのイベントが発生したときに特定の条件が満たされ場合に何を実行するかを、ユーザーが Event-Driven Ansible に指示する手段です。

ルールブックは、ルールがトリガーされたときに実行されるアクションを指定するものです。イベントがルールの条件に一致すると、ルールがトリガーされます。現在、次のアクションがサポートされています。

  • run_playbook (ansible-rulebook CLI でのみサポート)
  • run_module
  • run_job_template
  • run_workflow_template
  • set_fact
  • post_event
  • retract_fact
  • print_event
  • shutdown
  • debug
  • none

詳細を確認するには、アクション を参照してください。

ルールブックアクティベーションは、特定のルールブックを実行する決定環境によって定義されるバックグラウンドで実行されるプロセスです。ルールブックアクティベーションをセットアップするには、ルールブックアクティベーションの設定 に従ってください。

警告

Red Hat は、1 つの postgres データベースでサポートされていないソースプラグインを使用することを推奨していません。これにより、Ansible Automation Platform を使用する際に潜在的なリスクが生じる可能性があります。

重要

高可用性の要求を満たすために、Event-Driven Ansible Controller は、集中型の Redis (REmote DIctionary Server) を Ansible Automation Platform UI と共有します。Redis が利用できない場合は、次の機能が利用できなくなります。

  • is_enabled が True の場合は、アクティベーションの作成
  • アクティベーションの削除
  • アクティベーションの有効化 (まだ有効化されていない場合)
  • アクティベーションの無効化 (まだ無効化されていない場合)
  • アクティベーションの再開

7.1. サポートされるイベントソース

イベントソースは、ルールブックがイベントをどこから受信できるかを決定するため、Event-Driven Ansible の基本的なコンポーネントです。ルールブックのアクティベーションの有効性は、自動化環境と互換性のあるイベントソースの選択によって決まります。一部のイベントソースは、Web ベースの Event-Driven Ansible コントローラーで使用するように設計されていますが、その他のイベントソースは、ローカルホスト機能に依存しているため、ansible-rulebook コマンドラインインターフェイス (CLI) 専用となっています。この違いを理解することは、ルールブックのアクティベーションを成功させるために非常に重要です。

次のリストには、Web ベースの Event-Driven Ansible コントローラーで使用するために現在サポートされているイベントソースが含まれています。ルールブックのアクティベーションに対して、どのイベントソースが望ましい結果をもたらすかを決定できます。

  • alertmanager
  • aws_cloudtrail
  • aws_sqs_queue
  • azure_service_bus
  • kafka
  • pg_listener
  • webhook

7.2. ルールブックアクティベーションの設定

Ansible Automation Platform ダッシュボード内でルールブックアクティベーションを作成および設定できます。このプロセスにより、イベント駆動型の自動化を効率的に管理およびデプロイできるようになります。

前提条件

  • Ansible Automation Platform ダッシュボードにコンテンツコンシューマーとしてログインしている。
  • プロジェクトを設定した。
  • 決定環境を設定した。

手順

  1. Ansible Automation Platform にログインします。
  2. Automation DecisionsRulebook Activations に移動します。
  3. Create rulebook activation をクリックします。
  4. 以下を入力します。

    Name
    名前を入力します。
    Description
    このフィールドは任意です。
    Organization
    組織名を入力するか、リストから Default を選択します。
    Project
    プロジェクトはルールブックの論理的なコレクションです。このフィールドは任意です。
    Rulebook
    選択したプロジェクトに応じてルールブックが表示されます。
    Credential

    このルールブックアクティベーションの認証情報を 0 個以上選択します。このフィールドは任意です。

    注記
    • このフィールドに表示される認証情報は、ルールブックアクティベーションに基づいてカスタマイズされています。表示される認証情報のタイプは、Vault、Red Hat Ansible Automation Platform、または作成したカスタム認証情報タイプだけです。認証情報の詳細は、認証情報 を参照してください。
    • Red Hat Ansible Automation Platform 認証情報を使用する予定の場合、ルールブックアクティベーションに選択できる Red Hat Ansible Automation Platform 認証情報タイプは 1 つだけ です。
    Decision environment

    決定環境は、Ansible ルールブックを実行するためのコンテナーイメージです。

    注記

    Event-Driven Ansible Controller では、決定環境のプルポリシーをカスタマイズすることはできません。デフォルトでは、always ポリシーの動作に従います。アクティベーションが開始されるたびに、システムはイメージの最新バージョンを取得しようとします。

    Restart policy

    これは、ソースプラグインを実行しているコンテナープロセスが終了した後にアクティベーションを再開する方法を決定するポリシーです。

    • Policies:

      1. Always: ルールブックアクティベーションが正常に終了したかどうかに関係なく、ルールブックアクティベーションを直ちに再開します。これは 5 回まで実行されます。
      2. Never: コンテナープロセスが終了したときに、ルールブックアクティベーションを再開しません。
      3. On failure: コンテナープロセスが失敗した場合にのみ、デフォルトで 60 秒後にルールブックアクティベーションを再開します。これは 5 回まで実行されます。
    Log level

    このフィールドでは、ログに記録するイベントの重大度とコンテンツのタイプを定義します。

    • Levels:

      1. Error: アクティベーションの History タブに表示されるエラーメッセージを含むログ。
      2. Info: 成功または失敗、トリガーされたアクション名と関連するアクションイベント、エラーなど、ルールブックアクティベーションに関する有用な情報を含むログ。
      3. Debug: デバッグフェーズでのみ役立ち、運用時にはあまり有用でない可能性がある情報を含むログ。このログレベルでは、エラーデータとログレベルデータの両方が対象となります。
    Service name
    これは、アクティベーションによりポートが公開される場合に、Kubernetes が受信接続を設定するためのサービス名を定義します。このフィールドは任意です。
    Rulebook activation enabled?
    これを選択すると、ルールブックアクティベーションが自動的に有効になります。
    Variables

    ルールブックの変数は JSON または YAML 形式です。内容は、ansible-rulebook コマンドの --vars フラグによって渡されるファイルと同等です。

    注記

    Automation Controller と Event-Driven Ansible Controller のコンテキストでは、extra_vars と認証情報の両方を使用してさまざまな情報を保存できます。認証情報は、セキュリティーに優れ、管理が一元化されているため、パスワードや API キーなどの機密情報を保存する方法として推奨されます。一方、extra_vars は動的な非機密データを渡すのに適しています。

    オプション
    ルール監査にイベントを表示しない場合は、Skip audit events オプションをオンにします。
  5. Create rulebook activation をクリックします。

結果

ルールブックアクティベーションが作成され、Rulebook Activations 画面で管理できるようになります。

新しいルールブックアクティベーションを保存すると、ルールブックアクティベーションの詳細ページが、PendingRunning、または Failed ステータスとともに表示されます。詳細ページまたは Rulebook Activations リストビューから、ルールブックアクティベーションを再開または削除できます。

注記

ソースプラグインがシャットダウンすると、一定時間後にルールブックが正常に終了することがあります。ルールブックアクティベーションがシャットダウンすると、待機中のタスクがすべてキャンセルされ、アクティベーションのログに info レベルのメッセージが送信されます。詳細は、Rulebooks を参照してください。

7.3. ルールブックアクティベーションのリストビュー

Rulebook Activations ページでは、作成したルールブックアクティベーションを、Status、ルールブックの Number of rulesFire count、および Restart count とともに表示できます。

StatusRunning の場合、ルールブックアクティベーションがバックグラウンドで実行されており、ルールブックで宣言されたルールに従って必要なアクションが実行されていることを意味します。

Rulebook Activations リストビューからアクティベーションを選択すると、詳細を確認できます。

実行されたすべてのアクティベーションについて、Details タブと History タブを表示して、実行結果に関する詳細情報を取得できます。

7.3.1. アクティベーションの出力の表示

アクティベーションの出力は History タブで確認できます。

手順

  1. History タブを選択して、すべてのアクティベーションインスタンスのリストにアクセスします。1 つのアクティベーションインスタンスは、1 回のアクティベーションの実行を表します。
  2. 次に、表示するアクティベーションインスタンスを選択します。アクティベーションインスタンスの Output が表示されます。

次のステップ

アクションをトリガーしたイベントを表示するには、Automation DecisionsRule Audit に移動し、Rule Audit セクションの指示に従います。

7.4. ルールブックアクティベーションの有効化および無効化

ルールブックのアクティベーションを有効化または無効化して、いつ実行されるかを制御できます。アクティベーションを無効にすると、トラブルシューティングを行う場合や、設定を削除せずに自動化を一時的に停止する場合に役立ちます。

手順

  1. 行レベルのスイッチを選択して、選択したルールブックを有効または無効にします。
  2. ウィンドウで、Yes, I confirm that I want to enable/disable these X rulebook activations を選択します。
  3. Enable/Disable rulebook activation を選択します。

7.5. ルールブックアクティベーションの再起動

ルールブックのアクティベーションを再起動すると、自動化をすぐに再有効化できます。これは、更新を行った後やエラーから回復する場合に便利です。

注記

ルールブックアクティベーションを再開できるのは、ルールブックアクティベーションが現在有効で、作成時に再開ポリシーを Always に設定した場合だけです。

手順

  1. Rulebook Activation enabled/disabled トグルの横にある More Actions アイコン を選択します。
  2. Restart rulebook activation を選択します。
  3. ウィンドウで、Yes, I confirm that I want to restart these X rulebook activations を選択します。
  4. Restart rulebook activations を選択します。

7.6. ルールブックアクティベーションの編集

ルールブックアクティベーションを作成または実行した後に編集して、フィールドの入力 (ログレベル、再起動ポリシー、監査のオン/オフなど) を修正したり、障害によって発生した問題を軽減したりすることができます。

手順

  1. Rulebook Activations ページで、編集するアクティベーションの横にある Rulebook Activation enabled ボタンをオフの位置に切り替えて、アクティベーションを無効にします。

    Disable rulebook activations というメッセージが表示され、アクティベーションを無効にするかどうかの確認を求められます。

  2. Yes, I confirm that I want to disable these <1> rulebook activations チェックボックスをオンにし、Disable rulebook activations をクリックします。
  3. ルールブックアクティベーションの横にある Edit アイコンをクリックします。Edit フォームに移動します。

    注記

    Edit 機能には別の方法でもアクセスできます。Rulebook Activations ページでルールブックアクティベーションをクリックし、Rulebook activation enabled ボタンをオフの位置に切り替えて、アクティベーションを無効にすることを確認してから、ページの右上にある Edit rulebook activation ボタンをクリックすると、Edit フォームにアクセスできます。

  4. 必要なフィールドを編集します。

    注記

    アクティベーションをすぐに実行する場合は、Rulebook activation enabled ボタンをオンの位置に切り替えて、変更を保存してください。

  5. Save rulebook activation をクリックします。

結果

これにより、Rulebook Activations ページに戻ります。

7.7. ルールブックアクティベーションの複製

既存のルールブックアクティベーションと同様のフィールド入力情報を使用して新しいルールブックアクティベーションを設定する場合は、各フィールドに手動で入力する代わりに、Duplicate rulebook activation 機能を使用できます。ルールブックアクティベーションの設定には時間がかかる場合がありますが、既存のアクティベーションから必要なフィールドを複製する機能により、時間が節約され、場合によっては人為的エラーの可能性も軽減されます。

手順

  1. Rulebook Activations ページで、複製するアクティベーションの行にある More Actions アイコン をクリックします。More Actions リストには、次の 3 つのオプションが表示されます。

    • Restart rulebook activation
    • Duplicate rulebook activation
    • Delete rulebook activation
  2. Duplicate rulebook activation を選択します。

    "<Name of rulebook activation 1> duplicated." というメッセージが表示されます。最初、新しく複製したアクティベーションは、無効な状態で Rulebook Activations ページに表示されます。その名前は、元のアクティベーション名の後ろに 24 時間形式のタイムスタンプが付いたものになります (例: <ルールブックアクティベーション 1 の名前> @ 18:43:27)。

    重要

    ルールブックを複製した後も、元のルールブックアクティベーションは引き続き実行されます。フィールド (Name フィールドを含む) を編集せずに複製したアクティベーションを有効にして、元のアクティベーションと区別しようとすると、ルールブックアクティベーションが元のアクティベーションから複製されたものであるため、有効化に失敗したり、ジョブの重複やその他の問題が発生する可能性があることを通知するメッセージが表示されます。

  3. 複製したルールブックアクティベーションを実行する前に、次の手順を実行してフィールドを編集します。

    1. 複製したルールブックアクティベーションの横にある Edit アイコンをクリックします。Edit フォームに移動します。
    2. 必要なフィールドを編集します。

      注記

      新しく複製したアクティベーションに、元のアクティベーションと区別できる意味のある Name を必ず付けてください。

  4. Enable rulebook activation ボタンをオンの位置に切り替えます。
  5. すべての編集が完了したことを確認したら、Save rulebook activation をクリックします。

結果

これにより、ルールブックアクティベーションが開始されます。アクティベーションが正常に実行されると、ステータスが Running または Completed に変わります。

7.8. ルールブックアクティベーションの削除

不要になったルールブックのアクティベーションは、削除することで完全に除去できます。

手順

  1. Rulebook Activation enabled/disabled トグルの横にある More Actions アイコン を選択します。
  2. Delete rulebook activation を選択します。
  3. ウィンドウで、Yes, I confirm that I want to delete these X rulebook activations を選択します。
  4. Delete rulebook activations を選択します。

7.9. Webhook ルールブックのアクティブ化

Openshift 環境では、ルールブックアクティベーションの Kubernetes サービスを公開するルートを作成することで、Webhook が特定のポートを介して activation-job-pod に到達できるようにすることが可能です。

前提条件

  • ルールブックアクティベーションを作成した。
注記

特定の Webhook を含むルールブックの例を以下に示します。

- name: Listen for storage-monitor events
  hosts: all
  sources:
    - ansible.eda.webhook:
        host: 0.0.0.0
        port: 5000
  rules:
    - name: Rule - Print event information
    condition: event.meta.headers is defined
    action:
      run_job_template:
        name: StorageRemediation
        organization: Default
        job_args:
          extra_vars:
             message: from eda
             sleep: 1
Copy to Clipboard Toggle word wrap

手順

  1. サービスを公開するためのルートを (OpenShift Container Platform 上に) 作成します。以下は、決定環境 Pod のポート 5000 で POST を要求する ansible-rulebook ソースのルートの例です。

    kind: Route
    apiVersion: route.openshift.io/v1
    metadata:
      name: test-sync-bug
      namespace: dynatrace
      labels:
        app: eda
        job-name: activation-job-1-5000
    spec:
      host: test-sync-bug-dynatrace.apps.aap-dt.ocp4.testing.ansible.com
      to:
        kind: Service
        name: activation-job-1-5000
        weight: 100
      port:
        targetPort: 5000
      tls:
        termination: edge
        insecureEdgeTerminationPolicy: Redirect
      wildcardPolicy: None
    Copy to Clipboard Toggle word wrap
  2. ルートを作成したら、ルート URL へのポスト を使用してテストします。

    注記

    ポートはルート (targetPort) で指定されているため、必要ありません。

    curl -H "Content-Type: application/json" -X POST
    test-sync-bug-dynatrace.apps.aap-dt.ocp4.testing.ansible.com -d
    '{}'
    Copy to Clipboard Toggle word wrap

7.10. Kubernetes を使用したテスト

Kubernetes を使用すると、Ingress の作成やポートの公開を行うことができます。ただし、これは実稼働環境用のものではありません。

手順

  1. 次のコマンドを実行して、クラスター上の特定のサービスのポートを公開します。

    kubectl port-forward svc/<ACTIVATION_SVC_NAME> 5000:5000
    Copy to Clipboard Toggle word wrap
  2. localhost:5000 に対して HTTP 要求を実行して、ルールブックをトリガーします。

    curl -H "Content-Type: application/json" -X POST test-sync-bug-dynatrace.apps.aap-dt.ocp4.testing.ansible.com -d '{}'
    Copy to Clipboard Toggle word wrap

第8章 ルールブックアクティベーションのトラブルシューティング

ルールブックのアクティベーションは、さまざまな理由で失敗する可能性があります。多くの問題は基本的なチェックで解決できますが、分散システム間の障害の診断には堅牢なロギングが必要です。

Event-Driven Ansible の拡張ロギングストラテジーには、トラブルシューティングを大幅に改善するためにすべての出力に一意の追跡識別子を追加することが含まれています。

本章に含まれる問題の一覧を確認してください。これにより、アクティベーションの失敗や、その解決方法に関する提案が生じる可能性があります。新しい識別子を使用した詳細なログフィルタリングについては、イベント駆動型 Ansible ログのフィルタリング を参照してください。

8.1. Event-Driven Ansible ログのフィルタリング

Event-Driven Ansible には、トラブルシューティングを大幅に改善するために、すべてのログ出力での識別子の追跡が含まれています。これらの識別子は、複数のサービスとログファイル間のユーザーアクションおよびアクティベーションプロセスを追跡するのに役立ちます。

Expand
表8.1 Event-Driven Ansible ログ追跡 ID
識別子省略形目的ロケーション

X-REQUEST-ID

rid

Event-Driven Ansible リクエストのライフサイクル全体を介して、プラットフォームゲートウェイからの HTTP リクエストを追跡します。これを使用して、UI アクションまたは API 呼び出しをバックエンド処理と関連付けます。

HTTP レスポンスヘッダーと Event-Driven Ansible ログエントリーに含まれています。

ログトラッキング ID

tid

作成の完了時からの作成から アクティベーションライフサイクル を追跡し、再起動および複数のログファイル後も維持されます。

すべてのアクティベーション関連のログエントリーに含まれます。UI のアクティベーション History タブから取得できます。

アクティベーションインスタンス ID

AIId

ルールブックアクティベーションの 1 つの実行インスタンスに固有のログを特定し、その実行の ansible-rulebook 出力を表示できます。

アクティベーションログに含まれます。

注記

すべてのプロセスがユーザーまたは外部クライアントから発信されているわけではありません。Event-Driven Ansible オーケストレーターがプロセス(モニターリクエストなど)を内部的にトリガーすると、rid UUID は、プロセスライフサイクルを追跡するために内部に生成され、プラットフォームゲートウェイログには存在しません。

強化されたログフォーマットでは、これらの識別子をメッセージの最初に配置し、フィルタリングが容易になります。

[rid: <UUID>] [tid: <UUID>] [aiid: <ID>] aap_eda.tasks.orchestrator Processing request…​

8.1.1. トラブルシューティングのためのログフィルタリングの使用

すべてのシステムログを効率的に検索およびフィルタリングするために一意の追跡識別子を利用する方法を説明します。このプロセスは、特定のルールブックアクティベーションまたは API 要求の失敗の原因と、正確なタイムラインと、失敗の原因を特定します。

手順

  1. 識別子を収集します。

    1. 問題が発生した場合には、UI History タブ で、アクティベーションインスタンスのログから Log Tracking ID (tid)を取得します。
    2. ユーザーアクション(アクティベーションの再起動など)によって問題がトリガーされた場合は、HTTP 応答ヘッダーから X-REQUEST-ID (rid)を取得します。
  2. システムログを検索します。

    1. 収集した UUID を使用して、バックエンドログ(ワーカー、スケジューラー、API など)を検索します。これにより、関連性のないノイズが除外され、全サービスにおける特定の要求またはアクティベーションの全タイムラインに集中できます。
  3. 時間ラインを関連付けます。

    1. 一般的な tid を使用して、さまざまなログファイルやサービス全体のアクティベーションの進行状況(または失敗)に従います。
  4. サポートツールを使用します。

    1. 必要に応じて、/var/log/ansible-automation-platform/eda/ から関連するすべての Event-Driven Ansible ログを自動的に収集する sosreport または mustgather ツールを使用します。

8.2. アクティベーションが Pending 状態でスタックする

ルールブックアクティベーションが Pending 状態でスタックする場合は、次の手順を実行します。

手順

  1. 他に実行中のアクティベーションがあるか、制限 (メモリーや CPU の制限など) に達していないかを確認します。

    1. 他のアクティベーションが実行中の場合は、可能であれば 1 つ以上のアクティベーションを終了します。
    2. そうでない場合は、デフォルトのワーカー、Redis、およびアクティベーションワーカーがすべて実行されていることを確認します。
    3. すべてのシステムが期待どおりに動作している場合は、ワーカー、スケジューラー、API、nginx コンテナーおよびサービス内の eda-server 内部ログをチェックして、問題を特定できるか確認します。これらのログは、コードが出力した例外、ネットワークの問題によるランタイムエラー、ルールブックコードのエラーなど、問題の原因を明らかにします。内部ログに解決につながる情報が含まれていない場合は、Red Hat サポートに問題を報告してください。

8.3. アクティベーションが繰り返し再起動する

ルールブックアクティベーションの再起動が繰り返される場合は、次の手順を実行します。

手順

  1. Ansible Automation Platform にログインします。
  2. ナビゲーションパネルから、Automation DecisionsRulebook Activations を選択します。
  3. Rulebook Activations ページで、再起動を繰り返すアクティベーションをリストから選択します。Details ページが表示されます。
  4. 詳細は、History タブをクリックし、再起動を繰り返すルールブックアクティベーションを選択します。Details タブが表示され、出力情報が表示されます。
  5. アクティベーションの Restart policy フィールドを確認します。

    ここでは、On failure (コンテナープロセスが失敗した場合にルールブックアクティベーションを再起動)、Always (成功または失敗にかかわらず常に再起動し、再起動は 5 回まで)、Never (コンテナープロセスが終了したら決して再起動しない) のいずれかを選択できます。

    1. ルールブックアクティベーションの再起動ポリシーが On failure に設定されていることを確認します。これは、何らかの問題が原因で失敗していることを示しています。
    2. ルールブックアクティベーションの YAML コードとインスタンスログでエラーを確認することで、問題を診断できる場合があります。
    3. 再起動ポリシーの値から解決策を判断できない場合は、ログレベル に関連する次の手順に進みます。
  6. アクティベーションのログレベルを確認します。

    1. デフォルトのログレベルが Error の場合は、Rulebook Activation ページに戻り、ルールブックアクティベーションの設定 で説明されている手順を実行してアクティベーションを再作成します。
    2. Log levelDebug に変更します。
    3. アクティベーションを再度実行し、アクティベーションの詳細ページから History タブに移動します。
    4. History ページで、最近のアクティベーションの 1 つをクリックし、Output を表示します。

8.4. イベントがルールブックアクティベーションによって処理されない

ルールブックアクティベーションが実行されていてもイベントを処理していない場合、最も一般的な原因は、予想されるイベントソースとルールブックで定義されたソースとの不一致です。

手順

  1. ルールブックソースを確認する: ルールブック YAML で定義されたソースプラグインを確認します(例:ansible.eda.webhook、ansible.eda.kafka)。
  2. イベント入力の確認:イベント駆動型 Ansible Controller に送信するイベントが、ルールブックで定義したソースプラグインと互換性があることを確認します。ルールブックが Kafka メッセージを想定している場合は、汎用 Webhook イベントを処理できません。
  3. アクティベーションマッピングの確認: イベントストリームを使用している場合は、アクティベーションセットアップ中に正しいイベントストリームがルールブックにマッピングされていることを確認します。ここでの不一致により、アクティベーションがデータを受信しなくなります。

8.5. 受信イベントにもかかわらずアクションがトリガーされない

ルールブックアクティベーションが Running で正常に受信されているが、アクションが実行されていない場合は、ルールブックのロジック内で問題が原因として考えられます。

手順

  1. Check rule conditions: ルールブック YAML を確認し、条件(when ステートメント)が正しく書き込まれ、受信イベントペイロードの構造と値と正確に一致していることを確認します。
  2. インデントと構文:簡単なエラーにより、ルールエンジンが条件を評価できなくなるため、すべてのルールブック構文とインデントが正しいことを確認 します。
  3. validate actions: 指定したアクションが認識され、正しく設定されたアクションであることを確認します(例:適切な引数を持つ run_job_template )。

8.6. イベントストリームがアクティベーションにイベントを送信しない

イベントストリームを使用してルールブックアクティベーションにイベントを送信する場合、イベントがルールブックアクティベーションに正常にルーティングされないことがあります。

手順

  • これを解決するには、次のオプションを試してください。

    1. Event-Driven Ansible Controller の各イベントストリームが Test モードに なっていない ことを確認します。これは、アクティベーションがイベントを受信しないことを意味します。
    2. 元のサービスが要求を適切に送信していることを確認します。
    3. プラットフォームゲートウェイインスタンスへのネットワーク接続が安定していることを確認します。イベントストリームを設定している場合、これは送信者からのイベントストリーム要求のエントリーです。
    4. プラットフォームゲートウェイのプロキシーが実行されていることを確認します。
    5. イベントストリームワーカーが起動して実行されており、要求を処理できることを確認します。
    6. イベントストリームで認証情報が正しく設定されていることを確認します。
    7. 要求が、設定された認証情報に基づく認証メカニズムに準拠していることを確認します (たとえば、Basic には認証情報を含むヘッダーが含まれている必要があり、HMAC にはヘッダー内のコンテンツに署名が含まれている必要があります)。

      注記

      Event-Driven Ansible Controller で変更された認証情報が、元のサービスで更新されない可能性があります。

    8. アクティベーションで実行されているルールブックがこれらのイベントに反応することを確認します。これが確認できれば、イベントソースの記述 、入ってくるイベントを処理するアクションの追加は完了していることになります。そうでなければ、イベントはアクティベーションに到達はするものの、それをアクティブ化するものが何もない状態です。
    9. 自己署名付き証明書を使用している場合は、ベンダーから Webhook を送信するときに証明書の検証を無効にすることが推奨されます。ほとんどのベンダーには、テスト用または非実稼働環境用の証明書検証を無効にするオプションがあります。

8.7. アクティベーションの実行中に 2.5 Automation Controller に接続できない

アクティベーションを実行すると、Automation Controller への接続に失敗する場合があります。

手順

  1. 問題を解決するには、Red Hat Ansible Automation Platform の認証情報を設定し、正しい Automation Controller URL を取得していることを確認します。

    1. Red Hat Ansible Automation Platform の認証情報を設定していない場合は、Red Hat Ansible Automation Platform 認証情報の設定 の手順を実行します。この認証情報のホストが https://<your_gateway>/api/controller の URL 形式で設定されていることを確認します。
    2. このプロセスを完了したら、ルールブックアクティベーションを再度設定します。

第9章 ルール監査

ルール監査では、ある時点においてアクティブ化されたすべてのルールによってトリガーされたルールを監査できます。

Rule Audit リストビューには、ルールブック内の条件と一致してアクションをトリガーしたイベントを受信した各タイミングのリストが表示されます。リストにはルールブック内のルールが表示され、各見出しに実行されたルール名が表示されます。

9.1. ルール監査の詳細の表示

Rule Audit リストビューから、特定のアクションをトリガーしたイベントを確認できます。

手順

  1. ナビゲーションパネルから Automation DecisionsRule Audit を選択します。
  2. 目的のルールを選択すると、Details タブが表示されます。

結果

ここから、作成日時、最後に起動した日時、および対応するルールブックアクティベーションを確認できます。

9.2. ルール監査イベントの表示

特定のルールを選択して対応するイベントのリストを表示し、各イベントのログ、ソースタイプ、タイムスタンプを調べて詳細情報を確認できます。

手順

  1. ナビゲーションパネルから、Automation DecisionsRule Audit を選択します。
  2. 目的のルールを選択すると、Details タブが表示されます。アクションをトリガーしたすべてのイベントを表示するには、Events タブを選択します。選択すると、アクションをトリガーしたイベントが表示されます。
  3. イベントを選択すると、Event logSource typeTimestamp とともに表示されます。

9.3. ルール監査アクションの表示

特定のルールを選択すると、対応するアクションのリストが表示され、その出力を表示できます。

手順

  1. ナビゲーションパネルから Automation DecisionsRule Audit を選択します。
  2. 目的のルールを選択してから、Actions タブを選択します。

結果

ここから、実行されたアクションを確認できます。一部のアクションは、自動化実行にリンクされています。そこで出力を確認できます。

第10章 簡易イベントルーティング

簡易イベントルーティングを使用すると、Event-Driven Ansible Controller でイベントストリームを使用してさまざまなリモートシステムからデータをキャプチャーおよび分析できます。イベントストリームを使用すると、GitHub や GitLab などのリモートシステムから Event-Driven Ansible Controller にイベントを送信できます。ルールブック内のソースを交換することで、アクティベーションに 1 つ以上のイベントストリームを割り当てることができます。

イベントストリームは、ソースをルールブックに接続する簡単な方法です。この機能を使用すると、1 つのエンドポイントを作成してイベントソースからアラートを受信し、複数のルールブックでイベントを使用できます。

10.1. イベントストリーム

イベントストリームは、リモートシステムから Event-Driven Ansible Controller にイベントを送信できます。一般的なセットアップでは、サーバーからインターネット経由でイベントストリームにデータを送信し、さらに Event-Driven Ansible イベントストリームレシーバーに送信します。データをインターネット経由で送信する場合、要求を認証する必要があります。Webhook ベンダーまたはリモートシステムによって、認証方法が異なる場合があります。

Event-Driven Ansible Controller は、6 つの異なるイベントストリームタイプをサポートしています。

Expand
表10.1 イベントストリームタイプ
Descriptionベンダー

HMAC

Hashed Message Authentication Code (HMAC)。Event-Driven Ansible Controller とベンダーの Webhook サーバー間の共有シークレットを使用します。これによりメッセージの整合性が保証されます。

GitHub

Basic 認証

HTTP Basic 認証を使用します。

Datadog、Dynatrace

トークン認証

トークン認証を使用します。通常、HTTP ヘッダーは Authorization ですが、Gitlab などの一部のベンダーは X-Gitlab-Token を使用します。

Gitlab、ServiceNow

OAuth2

クライアントクレデンシャル と呼ばれる付与タイプで Machine-to-Machine (M2M) モードを使用します。トークンは不透明です。

Dynatrace

JWT を使用した OAuth2

クライアントクレデンシャル と呼ばれる付与タイプで M2M モードを使用します。トークンは JSON Web Token (JWT) です。

Datadog

ECDSA

Elliptic Curve Digital Signature Algorithm

SendGrid、Twilio

Event-Driven Ansible Controller は、6 つの基本的なイベントストリームタイプに基づく 4 つの他の特殊なイベントストリームもサポートしています。

  • GitLab Event Stream
  • GitHub Event Stream
  • ServiceNow Event Stream
  • Dynatrace Event Stream

これらの特殊なタイプでは、デフォルト値が追加されているため、使用するパラメーターが制限されます。たとえば、GitHub Event Stream は、HMAC Event Stream を特殊化したものであり、多くのフィールドがあらかじめ入力されています。GitHub Event Stream の認証情報を保存すると、GitHub Event Stream の推奨デフォルト値が表示されます。

10.2. イベントストリームの認証情報の作成

イベントストリームを使用する前に、イベントストリームの認証情報を作成する必要があります。

前提条件

  • 各イベントストリームに認証情報が 1 つだけ存在する。

手順

  1. Ansible Automation Platform ダッシュボードにログインします。
  2. ナビゲーションパネルから、Automation DecisionsInfrastructureCredentials を選択します。
  3. Create credential をクリックします。
  4. 以下を入力します。

    Name
    名前を入力します。
    Description
    このフィールドは任意です。
    Organization
    リストをクリックして組織を選択するか、Default を選択します。
    Credential type

    リストをクリックして認証情報タイプを選択します。

    注記

    認証情報タイプを選択すると、Type Details セクションと、選択した認証情報タイプに適用できるフィールドが表示されます。

    Type Details
    選択した認証情報タイプに応じて要求される情報を追加します。たとえば、GitHub Event Stream 認証情報タイプを選択した場合は、Event-Driven Ansible Controller とリモートサーバーの間に HMAC Secret (対称共有シークレット) を追加する必要があります。
  5. Create credential をクリックします。

結果

Details ページが表示されます。そのページまたは Credentials リストビューから、認証情報を編集または削除できます。

10.3. イベントストリームの作成

ルールブックアクティベーションに割り当てるイベントストリームを作成できます。

前提条件

  • イベントストリームをルールブックアクティベーションに割り当てる場合は、アクティベーションに決定環境とプロジェクトがすでに設定されていることを確認する。
  • Automation Controller に接続してルールブックアクティベーションを実行する予定の場合は、決定環境とプロジェクトに加えて、Red Hat Ansible Automation Platform 認証情報タイプが作成済みであることを確認する。詳細は、Red Hat Ansible Automation Platform 認証情報の設定 を参照してください。

手順

  1. Ansible Automation Platform にログインします。
  2. ナビゲーションパネルから、Automation DecisionsEvent Streams を選択します。
  3. Create event stream をクリックします。
  4. 以下を入力します。

    Name
    名前を入力します。
    Organization
    リストをクリックして組織を選択するか、Default を選択します。
    Event stream type

    目的のイベントストリームタイプを選択します。

    注記

    このリストには、リモートサーバーからの接続を認証するために使用できるデフォルトのイベントストリームタイプが少なくとも 10 種類表示されます。

    Credentials
    リストから認証情報を選択します。イベントストリーム用に作成した認証情報を選択することを推奨します。
    Headers

    イベントペイロードに含める HTTP ヘッダーキーをコンマで区切って入力します。

    重要

    自動化がイベントペイロードに存在する HTTP ヘッダーに依存している場合は、機密情報が意図しない公開を回避するために明示的に定義する必要があります。HTTP ヘッダーとその安全な設定方法については、HTTP ヘッダーおよび イベントストリームの HTTP ヘッダー を安全に設定 を参照してください。

    Forward events to rulebook activation

    このオプションは、ルールブックアクティベーションにイベントを転送する機能を有効または無効にするために使用します。

    注記

    イベントストリームのイベント転送は、接続を診断して受信データを評価する際に、テスト目的で無効にすることができます。Forward events to rulebook activation オプションを無効にすると、リモートシステムとイベントストリームの接続をテストし、ヘッダーとペイロードを分析し、必要に応じて認証情報の問題を診断できます。これにより、テスト中にイベントがルールブックアクティベーションに転送され、ルールや条件が誤ってトリガーされることがなくなります。企業によっては、機密情報やパスワードを定期的に変更するポリシーを設けている場合があります。このオプションは、イベントストリームの作成後、いつでも有効/無効にできます。

  5. Create event stream をクリックします。

結果

イベントストリームを作成すると、以下が出力されます。

  • Details ページが表示されます。そのページまたは Event Streams リストビューから、イベントストリームを編集または削除できます。また、Event Streams ページには、作成したすべてのイベントストリームと、各イベントの Events receivedLast event received、および Event stream type 列が表示されます。最初の 2 つの列は、イベントストリームを通じて外部データを受信するため、リモートシステムからイベントを受信していることがわかるように、継続的に更新されます。
  • イベントストリームを無効にした場合、Details ページに This event stream is disabled という警告メッセージが表示されます。

    注記

    イベントストリームの作成後、関連付けられている認証情報は、それが割り当てられているイベントストリームが削除されるまで削除できません。

  • 新しいイベントストリームで、イベントを送信するリモートシステムで Webhook を設定するときに必要な URL が生成されます。

10.4. HTTP ヘッダー

Event-Driven Ansible およびイベントストリームのコンテキストでは、HTTP ヘッダーには、サードパーティーソースからの着信イベントに関する必要なコンテキストおよびセキュリティー情報が含まれるため、重要なロールを果たします(GitHub、監視ツール、プロプライエタリー Webhook など)。これには、以下の機能が含まれます。

認証と否認防止
これが最も重要な用途です。ヘッダーには多くの場合、Event-Driven Ansible が 送信者の ID を検証し、イベントペイロードが改ざんされていないことを確認するトークン、API キー、またはセキュリティー署名( X-Hub-Signature ヘッダーの HMAC など)が含まれます。これは、正当なソースからのイベントが発生した非否認防止をサポートします。
デバッグおよびロギング
ヘッダーは、イベントのパスを追跡するために重要なデータポイント(日付ユーザーエージェントX-Request-ID)を提供し、システム管理者や SRE が遅延または失敗したイベント処理に関連する デバッグ の問題に役立てます。

ヘッダーはすべての HTTP 通信に必須であり、複数の目的に対応します。

  • コンテキストおよびメタデータ: 送信されるデータを記述します(例: Content-Type: application/json, Content-Length: 1024)。
  • Client/Server Capabilities: 送信者の機能や設定を受信するパーティーを設定します(例: Accept-Language: en-US)。
  • Authentication/Authorization: Carry security credentials (例 : Authorization: Bearer <token&gt;)。
  • Caching: クライアントおよびプロキシーでコンテンツをキャッシュする方法を制御します(例: Cache-Control: max-age=3600)。
  • ルーティングと追跡: カスタムヘッダーを介して、多くの場合はネットワークルーティングとトランザクションの追跡を容易にします(例: X-Request-ID)。

10.4.1. イベントストリームの HTTP ヘッダーを安全に設定

イベントストリームのセキュリティーを強化するには、渡される HTTP ヘッダーを明示的に定義する必要があります。これらのヘッダーには、処理に必要な重要なコンテキストと認証データが含まれます。

手順

  1. すべての HTTP ヘッダーを含めるには、Headers フィールドにアスタリスク(*)を入力します。これにより、いくつかのヘッダーを除き、すべての HTTP ヘッダーが許可されます。

    • excluded: X-EnvoyX-Trusted-ProxyX-Forwarded-For、および X-Real-Idで始まるヘッダー
    • リダクション: 認証ヘッダー(例: Authorization: Redacted

      重要

      Headers フィールドが空の場合、HTTP ヘッダーのいずれも実稼働およびテストモードのイベントペイロードに追加されません。

  2. 特定の HTTP ヘッダーのセットを含めるには、必要なヘッダーの名前をコンマ区切りの文字列で入力します(例: Host,Authorization,X-Request-ID)。

10.5. イベントストリームの静的一意識別子(UUID)

静的なユニバーサル識別子(UUID)でイベントストリームを設定して、イベントストリームサービスが再作成されても Webhook URL が一貫しているようにします。

この機能は、ファイアウォールやサードパーティー Webhook などの外部システムを新しい URL を使用できるように簡単に再設定できない障害復旧シナリオに関連します。静的 UUID を使用する際の重要な概念は次のとおりです。

障害復旧のサポート
静的な UUID により、https://your-eda-server.com/api/eda/v1/external_event_stream/{uuid}/ という形式に準拠する外部 Webhook URL は、サービスを再作成しても変更されません。
一意性
指定する UUID は、システム内のすべての既存のイベントストリーム全体で一意でなければなりません。
セキュリティー警告
静的 UUID により、Webhook URL が予測可能になるため、セキュリティーが低下する可能性があります。この機能は、URL の一貫性が重要で、追加のセキュリティー対策(強力な認証やネットワークの制限など)を実装している場合にのみ使用してください。通常の操作では、常に自動生成された UUID (動的)UUID を使用します。

堅牢な認証情報タイプ(HMAC、mTLS)、ネットワーク制限など、追加のセキュリティー対策が設定されていることを確認する必要があります。

10.5.1. 静的 UUID (API メソッド)を使用したイベントストリームの更新

静的なカスタム UUID を使用する場合は、API を使用してイベントストリームを更新する必要があります。作成用の API エンドポイントは POST /api/eda/v1/event-streams/ です。

前提条件

  • Ansible Automation Platform 2.6-next

手順

  1. Ansible Automation Platform にログインします。
  2. ナビゲーションパネルから Overview を選択します。
  3. URL の Overview を API エンドポイント api/eda/v1/(例 : https://<platformURL>.com/api/eda/v1/ )に置き換えます。Api V1 Root ページには、EDA リソース URL のリストが表示されます。

    {
        "config": "http://<aap.platform>.com/api/eda/v1/config/",
        "status": "http://<aap.platform>/api/eda/v1/status/",
        "openapi-json": "http://<aap.platform>/api/eda/v1/openapi.json",
        "openapi-yaml": "http://<aap.platform>/api/eda/v1/openapi.yaml",
        "openapi-docs": "http://<aap.platform>/api/eda/v1/docs/",
        "openapi-redoc": "http://<aap.platform>/api/eda/v1/redoc/",
        "session-login": "http://<aap.platform>/api/eda/v1/auth/session/login/",
        "session-logout": "http://<aap.platform>/api/eda/v1/auth/session/logout/",
        "token-refresh": "http://<aap.platform>/api/eda/v1/auth/token/refresh/",
        "current-user": "http://<aap.platform>/api/eda/v1/users/me/",
        "project-list": "http://<aap.platform>/api/eda/v1/projects/",
        "rulebook-list": "http://<aap.platform>/api/eda/v1/rulebooks/",
        "activation-list": "http://<aap.platform>/api/eda/v1/activations/",
        "activationinstance-list": "http://<aap.platform>/api/eda/v1/activation-instances/",
        "auditrule-list": "http://<aap.platform>/api/eda/v1/audit-rules/",
        "user-list": "http://<aap.platform>/api/eda/v1/users/",
        "controller-token-list": "http://<aap.platform>/api/eda/v1/users/me/awx-tokens/",
        "credentialtype-list": "http://<aap.platform>/api/eda/v1/credential-types/",
        "edacredential-list": "http://<aap.platform>/api/eda/v1/eda-credentials/",
        "credentialinputsource-list": "http://<aap.platform>/api/eda/v1/credential-input-sources/",
        "decisionenvironment-list": "http://<aap.platform>/api/eda/v1/decision-environments/",
        "organization-list": "http://<aap.platform>/api/eda/v1/organizations/",
        "team-list": "http://<aap.platform>/api/eda/v1/teams/",
        "eventstream-list": "http://<aap.platform>/api/eda/v1/event-streams/"
    Copy to Clipboard Toggle word wrap
  4. リストの末尾で "eventstream-list" の URL をクリックします。これにより、Event Stream List ページに移動します。
  5. 更新するイベントストリーム UUID の id を見つけてコピーします。これは、イベントストリームデータの最後にあります。

    },
    "id": *1*,
    "owner": "admin",
    "url": "https://<platformURL>/eda-event-streams/api/eda/v1/external_event_stream/bab8dddd-51cc-424f-87a4-0ed8ebe0a755/post/",
    "created_at": "2025-11-18T16:30:45.622363Z",
    "modified_at": "2025-11-18T16:30:45.622374Z",
    "test_content_type": "",
    "test_content": "",
    "test_error_message": "",
    "test_headers": "",
    "events_received": 0,
    "last_event_received_at": null
    Copy to Clipboard Toggle word wrap
  6. URL の最後にある id (例 : https://<platformURL>.com/api/eda/v1/<id#>)を貼り付け、Enter を押します。Event Stream Instance ページが表示されます。これには、現在の uuid 値が含まれ ます。
  7. イベントストリームインスタンス ページの最後にあるフォームで、uuid フィールドの値を任意の一意の静的文字列に更新します。
  8. Patch をクリックします。

検証

  • イベントストリームの UUID が新しい静的文字列に更新されていることを確認します。

10.6. イベントを送信するようにリモートシステムを設定する

イベントストリームを作成したら、イベントを Event-Driven Ansible Controller に送信するようにリモートシステムを設定する必要があります。この設定に使用する方法は、選択したイベントストリーム認証情報タイプのベンダーによって異なります。

次の例は、GitHub などのリモートシステムで Webhook を設定して、イベントを Event-Driven Ansible Controller に送信する方法を示しています。Event-Driven Ansible Controller にイベントを送信するようにリモートシステムを設定する方法は、ベンダーごとに異なります。

前提条件

  • イベントストリームを作成したときに生成された URL
  • イベントストリーム認証情報に設定したシークレットまたはパスワード

手順

  1. GitHub リポジトリーにログインします。
  2. Your profile name → Your repositories をクリックします。

    注記

    リポジトリーがない場合は、New をクリックして新しいリポジトリーを作成し、所有者を選択し、Repository name を追加して、Create repository をクリックします。

  3. Settings (ツールバー) に移動します。
  4. General ナビゲーションペインで、Webhooks を選択します。
  5. Add webhook をクリックします。
  6. Payload URL フィールドに、イベントストリームを作成したときに保存した URL を貼り付けます。
  7. Content type リストで application/json を選択します。
  8. Secret を入力します。
  9. Add webhook をクリックします。

結果

Webhook を追加したら、2 つのシステム (GitHub と Event-Driven Ansible Controller) 間の接続を確認するためにテストペイロードの送信を試みます。データを正常に送信できた場合は、Webhook URL の横に緑色のチェックマークが表示され、Last delivery was successful というメッセージが表示されます。

10.7. イベントストリームの動作確認

イベントストリームを使用してリモートシステムに接続し、データを受信できることを確認します。

  1. Ansible Automation Platform にログインします。
  2. ナビゲーションパネルから、Automation DecisionsEvent Streams を選択します。
  3. 作成したイベントストリームを選択して接続を検証し、イベントストリームがルールブックアクティベーションにデータを送信することを確認します。
  4. イベントが受信されたことを確認します。Events received の数が、イベントの詳細を含むヘッダーとともに表示されます。

    Verify event streams work

    UI を下にスクロールすると、Webhook に関する詳細情報を含むペイロードのボディーも確認できます。

    イベントストリームの Header セクションと Body セクションが Details ページに表示されます。これらはイベントを送信するベンダーによって異なります。ヘッダーとボディーを使用してイベントペイロード内の属性を確認できます。この情報は、ルールブックに条件を記述する際に役立ちます。

  5. Forward events to rulebook activation オプションを切り替えて、イベントをルールブックアクティベーションにプッシュできるようにします。

結果

これにより、イベントストリームが実稼働モードに移行し、ルールブックアクティベーションに簡単に割り当てることができるようになります。このオプションをオフにすると、ルールブックアクティベーションにイベントを転送する機能が無効になり、This event stream is disabled というメッセージが表示されます。

10.8. ソースの置き換えとアクティベーションへのイベントストリームの割り当て

ルールブックアクティベーションを作成するときに、イベントストリームを使用して、ルールブックアクティベーション内のソースマッピングを交換し、外部ソースから Event-Driven Ansible Controller へのルーティングを簡素化できます。

ソースマッピングに関して留意すべき重要なポイントがいくつかあります。

  1. イベントストリームは、ルールブックソースの交換で 1 回だけ使用できます。ルールブックに複数のソースがある場合、各ソースを 1 回だけ置き換えることができます。
  2. ソースマッピングは、現在のルールブックアクティベーションでのみ実行されます。同じルールブックを使用する他のアクティベーションがある場合は、そのアクティベーションに対してこのプロセスを繰り返す必要があります。
  3. ソースマッピングは、ルールブックが変更されない場合に限り有効です。ソースマッピングプロセス中にルールブックが変更されると、ソースマッピングが失敗し、プロセスをやり直す必要があります。
  4. ソースマッピングの作成後にルールブックが変更され、再起動 が発生すると、ルールブックアクティベーションが失敗します。

手順

  1. Ansible Automation Platform にログインします。
  2. ナビゲーションパネルから、Automation DecisionsRulebook Activations を選択します。
  3. Create rulebook activation をクリックします。
  4. 以下を入力します。

    Name
    名前を入力します。
    Description
    このフィールドは任意です。
    Organization
    組織名を入力するか、リストから Default を選択します。
    Project

    プロジェクトはルールブックの論理的なコレクションです。このフィールドは任意です。

    注記

    このフィールドは任意ですが、プロジェクトを選択すると、ルールブックの選択肢のリストを絞り込むのに役立ちます。

    Rulebook

    選択したプロジェクトに応じてルールブックが表示されます。ルールブックを選択します。

    注記

    ルールブックを選択すると、Event streams フィールドが有効になります。歯車アイコンをクリックすると、イベントストリームマッピングのフォームが表示されます。

    Event streams

    イベントをルールブックアクティベーションに転送するように設定されている利用可能なイベントストリームがすべて表示されます。イベントストリームを作成していない場合、このフィールドは無効のままです。

    歯車アイコンをクリックすると、イベントストリームマッピングの UI が表示されます。

    Event streams mapping UI

    以下のフィールドに入力します。

    Rulebook source

    ルールブックには、複数のルールセットにわたる複数のソースを含めることができます。複数のアクティベーションで、同じルールブックを複数のイベントストリームにマッピングできます。イベントストリームを管理する際、名前のないソースに、識別のために一時的な名前 (__SOURCE {n}) が割り当てられます。

    リストから __SOURCE_1 を選択します。

    Event stream

    リストからイベントストリーム名を選択します。

    Save をクリックします。

    イベントストリームは、ルールブック内の一致するソースを置き換えることができます。イベントストリームは、さまざまなイベントソースをルールブックアクティベーションに接続できるようにするサーバー側の Webhook です。ansible.eda.pg_listener タイプのイベントストリームのソースに置き換えることができるソースタイプとしては、ansible.eda.webhook やその他の互換性のある Webhook ソースプラグインなどがあります。選択したソースを置き換えると、このアクティベーションにのみ影響が発生し、ルールブックのソースタイプ、ソース名、および引数が変更されます。フィルター、ルール、条件、アクションは、いずれも影響を受けません。

    1 つのイベントストリームで置き換えるソースを選択できます。ルールブックに複数のソースがある場合は、各ソースをイベントストリームで置き換えることもできますが、各ソースを置き換える必要はありません。次の画像は、置き換えることができるソースを示しています。

    Event streams replacement sources

    ピンク色の項目は、置き換え可能なソース (ソースタイプ、ソース名、引数) を示しています。残りの項目 (フィルター、ルール、アクション) は置き換えられません。

    Credential

    このルールブックアクティベーションの認証情報を 0 個以上選択します。このフィールドは任意です。

    注記

    このフィールドに表示される認証情報は、ルールブックアクティベーションに基づいてカスタマイズされています。表示される認証情報のタイプは、Vault、Red Hat Ansible Automation Platform、または作成したカスタム認証情報タイプだけです。認証情報の詳細は、認証情報 を参照してください。

    Decision environment

    決定環境は、Ansible ルールブックを実行するために使用するコンテナーイメージです。

    注記

    Event-Driven Ansible Controller では、決定環境のプルポリシーをカスタマイズすることはできません。デフォルトでは、always ポリシーの動作に従います。アクティベーションが開始されるたびに、システムはイメージの最新バージョンを取得しようとします。

    Restart policy

    これは、ソースプラグインを実行しているコンテナープロセスが終了した後にアクティベーションを再開する方法を決定するポリシーです。

    • Policies:

      1. Always: ルールブックアクティベーションが正常に終了したかどうかに関係なく、ルールブックアクティベーションを直ちに再開します。これは 5 回まで実行されます。
      2. Never: コンテナープロセスが終了したときに、ルールブックアクティベーションを再開しません。
      3. On failure: コンテナープロセスが失敗した場合にのみ、デフォルトで 60 秒後にルールブックアクティベーションを再開します。これは 5 回まで実行されます。
    Log level

    このフィールドでは、ログに記録するイベントの重大度とコンテンツのタイプを定義します。

    • Levels:

      1. Error: アクティベーションの History タブに表示されるエラーメッセージを含むログ。
      2. Info: 成功または失敗、トリガーされたアクション名と関連するアクションイベント、エラーなど、ルールブックアクティベーションに関する有用な情報を含むログ。
      3. Debug: デバッグフェーズでのみ役立ち、運用時にはあまり有用でない可能性がある情報を含むログ。このログレベルでは、エラーデータとログレベルデータの両方が対象となります。
    Service name
    これは、アクティベーションによりポートが公開される場合に、Kubernetes が受信接続を設定するためのサービス名を定義します。このフィールドは任意です。
    Rulebook activation enabled?
    これを選択すると、ルールブックアクティベーションが自動的に有効になります。
    Variables
    ルールブックの変数は JSON または YAML 形式です。内容は、ansible-rulebook コマンドの --vars フラグによって渡されるファイルと同等です。
    Options
    ルール監査にイベントを表示しない場合は、Skip audit events オプションをオンにします。
  5. Create rulebook activation をクリックします。

結果

ルールブックアクティベーションを作成すると、Details ページが表示されます。Event streams ページに移動すると、イベントが受信されたことを確認できます。

10.9. イベントストリームタイプからの Webhook データの再送信

作成したイベントストリームでソースを置き換えたら、イベントストリームからデータを再送信して、ルールブックアクティベーションにデータが割り当てられていることを確認できます。先ほど示した例では、GitHub イベントストリームを使用しました。次の例は、GitHub イベントストリームを使用している場合に Webhook データを再送信する方法を示しています。

手順

  1. GitHub Webhook / Manage webhook ページに戻ります。
  2. Recent Deliveries タブをクリックします。
  3. 省略記号 をクリックします。
  4. Redeliver をクリックします。Redeliver payload? ウィンドウに送信に関するメッセージが表示されます。
  5. Yes, redeliver this payload をクリックします。
  6. Ansible Automation Platform に戻り、ルール監査を確認します。

10.10. Rule Audit で新しいイベントストリームのイベントを確認する

Event-Driven Ansible Controller によってイベントが送受信されたら、Rule Audit ページに移動してイベントストリームの結果を表示することで、アクションがトリガーされたことを確認できます。

手順

  1. Ansible Automation Platform にログインします。
  2. ナビゲーションパネルから、Automation DecisionsRule Audit を選択します。

結果

選択したイベントストリームタイプからのイベントデータがルールブックアクティベーションに届いた場合、Rule Audit ページに、StatusRulebook activation、および Last fired date フィールドの結果が表示されます。

第11章 Event-Driven Ansible Controller のパフォーマンスチューニング

Event-Driven Ansible は、非常にスケーラブルで柔軟な自動化機能です。Event-Driven Ansible Controller は、Event-Driven Ansible による自動化を実行するインターフェイスを提供します。Event-Driven Ansible Controller をチューニングし、次の方法でパフォーマンスとスケーラビリティーを最適化します。

  • ワークロードの特性評価
  • システムレベルの監視
  • パフォーマンスのトラブルシューティング

11.1. ワークロードの特性評価

Event-Driven Ansible Controller では、ワークロードに、ルールブックアクティベーションの数と受信するイベントの数が含まれます。Event-Driven Ansible Controller のワークロードの特性を評価する際には、次の要素を考慮してください。

  1. ルールブックアクティベーションの同時実行数
  2. Event-Driven Ansible Controller が受信するイベントの数

11.2. ルールブックアクティベーションごとのデフォルトのメモリー制限の変更

メモリー使用量は、Event-Driven Ansible Controller が処理する必要のあるイベントの数に基づいています。デフォルトでは、ルールブックアクティベーションコンテナーごとに 200 MB のメモリー制限があります。たとえば、4 CPU および 16 GB の RAM の場合、1 つの 200 MB のメモリー制限が割り当てられた 1 つのルールブックアクティベーションコンテナーは、1 分あたり 150,000 を超えるイベントを処理できません。並行して実行されるルールブックアクティベーションの数が多い場合は、各ルールブックアクティベーションが処理できるイベントの最大数は少なくなります。非常に高いレートでの受信イベントが多すぎる場合、コンテナーはイベントを処理しようとしてメモリー不足になる可能性があります。これによりコンテナーが強制終了され、ルールブックアクティベーションはステータスコード 137 で失敗します。

このステータスを軽減するには、インストール またはインストール にルールブックアクティベーションごとにデフォルトのメモリー制限を変更できます。

手順

  1. インストール にルールブックアクティベーションのデフォルトのメモリー制限を変更するには、次の手順を実行します。

    1. セットアップインベントリーファイルに移動します。
    2. [all:vars] セクションに automationedacontroller_podman_mem_limit を追加します。たとえば、automationedacontroller_podman_mem_limit='400m' などです。
    3. セットアップを実行します。
  2. インストール にルールブックアクティベーションのデフォルトのメモリー制限を変更するには、次の手順を実行します。

    1. /etc/ansible-automation-platform/eda/settings.yaml にある環境ファイルに移動します。
    2. デフォルトのコンテナーのメモリー制限を変更します。たとえば、PODMAN_MEM_LIMIT = '300m' です。
    3. automation-eda-controller-service restart を使用して、Event-Driven Ansible Controller サービスを再起動します。

11.3. Event-Driven Ansible Controller のシステムレベルの監視

ワークロードの特性を評価して、並行して実行しているルールブックアクティベーションの数と、特定の時点で受信しているイベントの数を特定したら、システムレベルで Event-Driven Ansible Controller ホストを監視することを検討してください。システムレベルのモニタリングを使用して、Event-Driven Ansible のパフォーマンスに関する情報を時間の経過とともに確認することで、問題を診断したり、将来的な容量の増加を検討したりする場合に役立ちます。

システムレベルの監視では、次の情報が含まれます。

  • ディスク I/O
  • RAM 使用率
  • CPU の使用率
  • ネットワークトラフィック

CPU、RAM、またはディスクの使用率が高いと、Event-Driven Ansible Controller の全体的なパフォーマンスに影響を与える可能性があります。たとえば、これらのシステムレベルリソースのうち、使用率が高い場合は、Event-Driven Ansible Controller が実行しているルールブックアクティベーションが多すぎるか、または個々のルールブックアクティベーションの一部で大量のリソースを使用していることを示しています。このような場合は、ワークロードをサポートするためにシステムレベルのリソースを増やす必要があります。

第12章 イベントフィルタープラグイン

イベントには、ルールエンジンに過度の負荷をかける余分なデータが含まれている場合があります。イベントフィルターを使用して余分なデータを削除することで、ルールにとって重要なものに絞り込むことができます。イベントフィルターは、ルール条件とデータの照合をより適切に行うために、データの形式を変更することもあります。

イベントは Python コードとして定義され、コレクションとして提供されます。デフォルトの eda コレクション には次のフィルターがあります。

Expand
名前説明

json_filter

このフィルターは、イベントオブジェクトからキーを追加または除外します。

dashes_to_underscores

このフィルターは、ペイロード内のすべてのキーのダッシュをアンダースコアに変更します。

ansible.eda.insert_hosts_to_meta

このフィルターは、ansible-rulebook がイベントを検出して使用できるように、イベントにホスト情報を追加するために使用されます。

ansible.eda.normalize_keys

このフィルターは、英数字以外のキーをアンダースコアに変更する場合に使用します。

イベントフィルターは次々と連結することができます。その場合、更新されたデータが、フィルターから次のフィルターに送信されます。イベントフィルターは、ソースを定義した後にルールブックで定義します。ルールブックがソースプラグインを起動すると、正しいフィルターが関連付けられ、データがキューに追加される前に変換されます。

sources:
  - name: azure_service_bus
    ansible.eda.azure_service_bus:
      conn_str: "{{connection_str}}"
      queue_name: "{{queue_name}}"
    filters:
      - json_filter:
          include_keys: ['clone_url']
          exclude_keys: ['*_url', '_links', 'base', 'sender', 'owner', 'user']
      - dashes_to_underscores:
Copy to Clipboard Toggle word wrap

この例では、データがまず json_filter を通過し、次に dashes_to_underscores フィルターを通過します。イベントペイロードでは、キーに文字、数字、アンダースコアのみを含めることができます。ネストされたキーにアクセスするには、ピリオド (.) を使用します。

すべてのイベントはイベントの発生元を記録する必要があるため、source nametype、および received_at を追加するために、フィルター eda.builtin.insert_meta_info が ansible-rulebook によって自動的に追加されます。received_at には、日付時刻が UTC ISO8601 形式で格納され、マイクロ秒が含まれます。uuid には、イベントの一意の ID が格納されます。meta key は、イベントに関するメタデータを格納するために使用されます。これは、aap サーバー内のイベントを正確に報告するために必要です。

12.1. イベントフィルターの作成

イベントフィルターは、イベントデータに対して変換を実行する Python モジュール内の関数です。イベントフィルターを使用すると、イベントデータ構造内の任意のデータを削除、追加、変更、または移動できます。イベントフィルターは、イベントを最初の引数として受け取ります。ルールブックの設定によって、追加のキーワード引数が提供されます。

基本的な構造は次のとおりです。

   # my_namespace.my_collection/extensions/eda/plugins/event_filter/my_filter.py
    def main(event: dict, arg1, arg2):
        # Process event data here
        return event
Copy to Clipboard Toggle word wrap

このフィルターをルールブックで使用するには、イベントソースのフィルターリストに追加します。

  sources:
    - name: azure_service_bus
      ansible.eda.azure_service_bus:
        conn_str: "{{connection_str}}"
        queue_name: "{{queue_name}}"
      filters:
        - my_namespace.my_collection.my_filter:
            arg1: hello
            arg2: world
Copy to Clipboard Toggle word wrap

第13章 Event-Driven Ansible ロギングストラテジー

Event-Driven Ansible は、リソースに対する監査ログソリューションを提供します。サポートされている作成、読み取り、更新、削除 (CRUD) 操作が、ルールブックアクティベーション、イベントストリーム、決定環境、プロジェクト、アクティベーションに対してそれぞれ記録されます。これらのリソースの一部は、同期、有効化、無効化、再起動、起動、停止などの追加の操作をサポートしており、これらの操作のログ記録もサポートされています。これらのログは、関連付けられているコンテナーのライフサイクル期間中のみ保持されます。サポートされている各ログ操作は、次のサンプルログを参照してください。

13.1. ロギングのサンプル

各操作に対して次の API が呼び出されると、次の監査ログが表示されます。

ルールブックアクティベーション
1. Create
    1. 2024-08-15 14:13:20,384 aap_eda.api.views.activation INFO   Action: Create / ResourceType: RulebookActivation / ResourceName: quick_start_project / ResourceID: 53 / Organization: Default
2. Read
    1. 2024-08-15 14:21:26,844 aap_eda.api.views.activation INFO   Action: Read / ResourceType: RulebookActivation / ResourceName: quick_start_activation / ResourceID: 1 / Organization: Default
3. Disable
    1. 2024-08-15 14:23:57,798 aap_eda.api.views.activation INFO   Action: Disable / ResourceType: RulebookActivation / ResourceName: quick_start_activation / ResourceID: 1 / Organization: Default
4. Enable
    1. 2024-08-15 14:24:16,472 aap_eda.api.views.activation INFO   Action: Enable / ResourceType: RulebookActivation / ResourceName: quick_start_activation / ResourceID: 1 / Organization: Default
5. Delete
    1. 2024-08-15 14:24:53,847 aap_eda.api.views.activation INFO   Action: Delete / ResourceType: RulebookActivation / ResourceName: quick_start_activation / ResourceID: 1 / Organization: Default
6. Restart
    2024-08-15 14:24:34,169 aap_eda.api.views.activation INFO      Action: Restart / ResourceType: RulebookActivation / ResourceName: quick_start_activation / ResourceID: 1 / Organization: Default
Copy to Clipboard Toggle word wrap
EventStream ログ
1. Create
    1. 2024-08-15 13:46:26,903 aap_eda.api.views.webhook INFO     Action: Create / ResourceType: EventStream / ResourceName: ZackTest / ResourceID: 1 / Organization: Default
2. Update
    1. 2024-08-15 13:56:17,440 aap_eda.api.views.webhook INFO     Action: Update / ResourceType: EventStream / ResourceName: ZackTest / ResourceID: 1 / Organization: Default
3. Read
    1. 2024-08-15 13:56:56,271 aap_eda.api.views.webhook INFO     Action: Read / ResourceType: EventStream / ResourceName: ZackTest / ResourceID: 1 / Organization: Default
4. List
    1. 2024-08-15 13:56:17,492 aap_eda.api.views.webhook INFO     Action: List / ResourceType: EventStream / ResourceName: * / ResourceID: * / Organization: *
5. Delete
    1. 2024-08-15 13:57:13,124 aap_eda.api.views.webhook INFO     Action: Delete / ResourceType: EventStream / ResourceName: ZackTest / ResourceID: None / Organization: Default
Copy to Clipboard Toggle word wrap
決定環境
1. Create
    1. 2024-08-15 14:10:53,311 aap_eda.api.views.decision_environment INFO     Action: Create / ResourceType: DecisionEnvironment / ResourceName: quick_start_de / ResourceID: 86 / Organization: Default
2. Read
    1. 2024-08-15 14:10:53,349 aap_eda.api.views.decision_environment INFO     Action: Read / ResourceType: DecisionEnvironment / ResourceName: quick_start_de / ResourceID: 86 / Organization: Default
3. Update
    2024-08-15 14:11:20,970 aap_eda.api.views.decision_environment INFO     Action: Update / ResourceType: DecisionEnvironment / ResourceName: quick_start_de / ResourceID: 86 / Organization: Default
4. Delete
2024-08-15 14:11:42,369 aap_eda.api.views.decision_environment INFO     Action: Delete / ResourceType: DecisionEnvironment / ResourceName: quick_start_de / ResourceID: None / Organization: Default
Copy to Clipboard Toggle word wrap
プロジェクト
1. Create
    1. 2024-08-15 14:05:26,874 aap_eda.api.views.project INFO     Action: Create / ResourceType: Project / ResourceName: quick_start_project / ResourceID: 86 / Organization: Default
2. Read
    1. 2024-08-15 14:05:26,913 aap_eda.api.views.project INFO     Action: Read / ResourceType: Project / ResourceName: quick_start_project / ResourceID: 86 / Organization: Default
3. Update
    1. 2024-08-15 14:06:08,255 aap_eda.api.views.project INFO     Action: Update / ResourceType: Project / ResourceName: quick_start_project / ResourceID: 86 / Organization: Default
4. Sync
    1. 2024-08-15 14:06:30,580 aap_eda.api.views.project INFO     Action: Sync / ResourceType: Project / ResourceName: quick_start_project / ResourceID: 86 / Organization: Default
5. Delete
    1. 2024-08-15 14:06:49,481 aap_eda.api.views.project INFO     Action: Delete / ResourceType: Project / ResourceName: quick_start_project / ResourceID: 86 / Organization: Default
Copy to Clipboard Toggle word wrap
アクティベーションの開始/停止
1. Start
    1. 2024-08-15 14:21:29,076 aap_eda.services.activation.activation_manager INFO     Requested to start activation 1, starting.
    2024-08-15 14:21:29,093 aap_eda.services.activation.activation_manager INFO     Creating a new activation instance for activation: 1
    2024-08-15 14:21:29,104 aap_eda.services.activation.activation_manager INFO     Starting container for activation instance: 1
2. Stop
    1. eda-activation-worker-1  | 2024-08-15 14:40:52,547 aap_eda.services.activation.activation_manager INFO     Stop operation requested for activation id: 2 Stopping activation.
    eda-activation-worker-1  | 2024-08-15 14:40:52,550 aap_eda.services.activation.activation_manager INFO     Activation 2 is already stopped.
    eda-activation-worker-1  | 2024-08-15 14:40:52,550 aap_eda.services.activation.activation_manager INFO     Activation manager activation id: 2 Activation restart scheduled for 1 second.
    eda-activation-worker-1  | 2024-08-15 14:40:52,562 rq.worker INFO     activation: Job OK (activation-2)
Copy to Clipboard Toggle word wrap

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat