使用自动化决策


Red Hat Ansible Automation Platform 2.5

配置和使用 Event-Driven Ansible 控制器来增强和扩展自动化

Red Hat Customer Content Services

摘要

了解如何配置 Event-Driven Ansible 控制器,以设置凭证、新项目、决策环境、令牌以向 Ansible Automation Platform Controller 进行身份验证,以及规则手册激活。

前言

Event-Driven Ansible 控制器是一种新方法,通过提高 IT 速度和灵活性来增强和扩展自动化,同时实现一致性和弹性。它由红帽开发,用于提供简化和灵活性。

对红帽文档提供反馈

如果您对本文档有任何改进建议,或发现错误,请通过 https://access.redhat.com 联系技术支持来创建一个请求。

第 1 章 Event-Driven Ansible 控制器概述

Event-Driven Ansible 是一个高度可扩展的、灵活的自动化功能,可用于其他软件厂商的监控工具。这些工具监控 IT 解决方案并确定事件,并自动实施记录的更改或在规则手册中响应该事件。

以下流程组成用户配置:

注意
  • Event-Driven Ansible 控制器的 API 文档位于 https:///api/eda/v1/docs
  • 为满足高可用性需求,Event-Driven Ansible 控制器通过 Ansible Automation Platform UI 共享集中式 Redis (REmote DIctionary Server)。当 Redis 不可用时,您将无法创建或同步项目,或者启用规则手册激活。

第 2 章 凭证

您可以使用凭证来存储可用于身份验证资源的 secret,如决策环境、规则手册激活和项目用于事件-Driven Ansible 控制器,以及用于自动化控制器的项目。

在针对机器启动作业并从版本控制系统中导入项目内容时,凭证会验证用户。

您可以向用户和团队授予使用这些凭证的权限,而无需向用户公开凭证。如果用户移至不同的团队或离职,就不必再更新所有系统的密钥,因为该凭据之前已可用。

注意

在自动化控制器和 Event-Driven Ansible 控制器的上下文中,您可以使用 extra_vars 和凭证来存储各种信息。但是,凭证是存储密码或 API 密钥等敏感信息的首选方法,因为它们提供更好的安全性和集中管理,而 extra_vars 更适合传递动态的、非敏感数据。

2.1. 凭证列表视图

当您登录 Ansible Automation Platform 并选择 Automation DecisionsInfrastructureCredentials 时,Credentials 页面有一个预加载的 Decision Environment Container Registry 凭证。当您创建自己的凭据时,它们将添加到此列表视图。

在菜单栏中,您可以在 Name 搜索字段中搜索凭证。

您还可以在菜单栏中提供以下选项:

  • 管理列 - 您可以通过点这个选项来选择在列表视图中显示字段。您有四种方法,您可以安排您的字段:

    • column - 显示表中的列。
    • description- 在项目扩展为完整宽度描述时显示列。
    • 项目作为详细信息展开时,展开显示列。
    • 隐藏 - 隐藏列。
  • 列出视图卡视图 - 您可以通过点击适用的图标在这些视图之间进行选择。

2.2. 设置凭证

您可以创建一个凭证以用于源插件或您选择的私有容器 registry。您可以让您的凭证可供一个团队或个人使用。

流程

  1. 登录到 Ansible Automation Platform 仪表板。
  2. 在导航面板中,选择 Automation DecisionsInfrastructureCredentials
  3. Create credential
  4. 插入以下内容:

    名称
    插入名称。
    描述
    此字段是可选的。
    机构(Organization)
    单击列表以选择一个机构,或选择 Default
    凭证类型

    单击列表以选择您的凭据类型。

    注意

    当您选择凭证类型时,Type Details 部分会显示适用于您选择的凭证类型的字段。

  5. 完成适用于您选择的凭证类型的字段。
  6. Create credential

后续步骤

保存凭证后,会显示凭证详情页面。从 there 或 Credentials 列表视图中,您可以编辑或删除它。

2.3. 编辑凭证

您可以编辑现有凭证,以确保您的机构的适当访问权限级别。

流程

  1. 使用以下方法之一编辑凭证:

    • Credentials 列表视图中,点所需凭证旁的 Edit credential 图标。
    • Credentials 列表视图中,选择凭据的名称,单击 Edit credential
  2. 编辑正确详情并点 Save credential

2.4. 复制凭证

当使用与现有凭证类似的字段输入设置新凭证时,您可以使用 Details 选项卡中的 Duplicate credential 功能来重复信息,而不是手动输入。虽然设置凭证可能是一个较长的过程,但可以从现有凭证中复制所需字段的功能会节省时间,并在某些情况下降低了人为错误的可能性。

流程

  1. 在 Credentials 列表页面中,点您要重复的凭证的名称。这会进入凭证的 Details 选项卡。
  2. 点 Details 选项卡右上角的 Duplicate credential

    注意

    您还可以点 Credentials 列表页面中所需凭证旁的 Duplicate credential 图标。

    此时会显示一条信息,确认您选择的凭证已被重复:"<Name of credential> duplicated"。

  3. 单击 Back to credentials 选项卡,以查看您刚才重复的凭证。

    显示重复的凭证名称与原始凭证的名称相同,后跟一个 24 小时格式的时间戳(例如,< Name of credential> @ 17:26:30)。

  4. 编辑您喜欢重复凭证的详情。
  5. 单击 Save credential

2.5. 删除凭证

如果您的机构不再需要凭证,您可以删除凭证。

流程

  1. 使用以下方法之一删除凭证:

    • Credentials 列表视图中,点击所需凭证旁的 More Actions 图标 HEKETI,然后点 Delete credential
    • Credentials 列表视图中,选择凭证名称,点 Edit credential 旁边的 More Actions 图标 identityProvider,然后点 Delete credential
  2. 在弹出窗口中,选择 Yes,我确认我要删除此凭据

    注意

    如果您的凭证仍然被您机构中其他资源使用,则会显示警告信息,以便您知道无法删除凭证。另外,如果您的凭证在事件流中使用,则无法删除它,直到事件流被删除或附加到其他凭证为止。通常,避免删除正在使用的凭证,因为它可能会导致激活中断。

  3. 单击 Delete credential

结果

您可以通过选择每个凭证旁边的复选框来删除多个凭证,点菜单栏中的 More Actions 图标 channel,然后点 Delete selected credentials

第 3 章 凭证类型

event-Driven Ansible 控制器附带几个内置 credental 类型,可用于同步项目、运行规则手册激活、通过自动化执行(自动化控制器)执行作业模板,以及从容器 registry 获取镜像,以及通过事件流处理数据。

这些内置凭证类型不可编辑。因此,如果您需要支持其他系统进行身份验证的凭证类型,您可以创建自己的凭证类型,这些类型可以在您的源插件中使用。每个凭证类型都包含一个输入配置和注入器配置,它们可以传递给 Ansible 规则手册来配置您的源。

如需更多信息,请参阅 自定义凭证类型

3.1. 自定义凭证类型

作为系统管理员,您可以使用类似 YAML 或 JSON 的定义,定义一个以标准格式与现有凭证类型类似的自定义凭证类型。

每个凭证类型在 Input ConfigurationInjector Configuration 字段中显示自己的唯一配置(如果适用)。配置字段支持 YAML 和 JSON 格式。

自定义凭据支持 Ansible 额外变量来注入其身份验证信息。

您可以将一个或多个云、vault 和 Red Hat Ansible Automation Platform 凭证类型附加到规则手册激活。

注意
  • 在创建新凭证类型时,您必须避免 extra_vars 中的冲突。
  • 额外的变量名称不能以 EDA_ 开头,因为它们是保留的。
  • 您必须具有系统管理员(超级用户)权限才能创建和编辑凭证类型,并能够查看 Injector 配置字段

当您自定义自己的凭证类型时,它们会显示在 Credential Types 页面中,以及内置凭证类型的列表。

3.1.1. 输入配置

输入配置有两个属性:

  • 字段 - 凭证类型的属性集合。
  • 必需 - 必填字段列表。

根据您选择的凭证类型,字段可以有多个属性。

Expand
表 3.1. 输入配置字段属性
字段描述必需(Y/N)

id

字段的唯一 ID;必须是字符串类型并存储变量名称

type

可以是字符串或布尔值类型

no, 默认为字符串

label

UI 在渲染 UI 元素时使用

secret

将加密

否,默认 false

多行

如果字段包含来自文件的数据,则可以将多行设置为 True

否,默认 false

help_text

与此字段关联的帮助文本

3.1.2. 注入程序配置

您可以使用 Injector 配置从 Input 配置字段中提取信息,并将它们映射到程序类型,在运行规则手册时可发送到 ansible-rulebook。event-Driven Ansible 支持以下类型的注入器:

  • 环境变量(env)- 用于底层软件包或共享库的源插件。
  • Ansible 额外变量(extra_vars)- 用于替换规则手册条件、操作或源插件参数。
  • 基于文件的模板(文件) - 用于从凭证输入(如证书和密钥)创建文件内容,插件可能需要它们。文件注入程序提供了一种在运行时向 ansible-rulebook 发送这些证书和密钥的方法,而无需将其存储在决策环境中。因此,ansible-rulebook 创建临时文件,并使用 eda.filename 变量访问文件名,这些变量会在创建文件(例如 "{{eda.filename.my_cert}}")后自动创建。
重要

在规则手册激活和凭证类型注入器中创建 extra_vars 时,请避免使用 edaansible 作为密钥名称,因为与内部使用冲突,并可能导致规则手册激活和凭证类型创建失败。

借助注入程序,您可以调整字段,以便它们可以作为上述注入器类型之一注入规则,这在顶层不能有重复的键。如果您在规则手册中有两个源,它们需要用户名和密码等参数,则注入器以及规则手册中可帮助您调整每个源的参数。

要查看示例注入程序和输入,请分别查看以下 GitHub gists:

3.2. 创建新凭证类型

您可以创建一个凭证类型,用于根据支持的默认凭证类型选择的源插件。您可以让您的凭证类型可供团队或个人使用。

流程

  1. 登录到 Ansible Automation Platform 仪表板。
  2. 在导航面板中,选择 Automation DecisionsInfrastructureCredential Types
  3. 单击 Create credential type
  4. 插入以下内容:

    名称
    插入名称。
    描述
    此字段是可选的。
  5. Input Configuration 字段中,指定一个输入模式,为该类型定义一组排序字段。格式可以是 YAML 或 JSON:

    YAML

    fields:
      - type: string
        id: username
        label: Username
      - type: string
        id: password
        label: Password
        secret: true
    required:
      - username
      - password

    在 YAML 页面 查看更多 YAML 示例。

    JSON

    {
    "fields": [
      {
      "type": "string",
      "id": "username",
      "label": "Username"
      },
      {
      "secret": true,
      "type": "string",
      "id": "password",
      "label": "Password"
       }
      ],
     "required": ["username", "password"]
    }

    请参阅 JSON 网站 查看更多 JSON 示例。

  6. Injector Configuration 字段中输入环境变量或额外变量,用于指定凭证类型可注入的值。格式可以是 YAML 或 JSON (请参阅上一步中的示例)。

    以下 JSON 格式的配置显示了每个字段以及它们的使用方式:

    {
        "extra_vars": {
          "some_extra_var": "{{ username }}:{{ password }}"
      }
    }
  7. 单击 Create credential type

    您新创建的凭证类型显示在凭证类型列表中。

  8. Edit credential type Edit 图标修改凭证类型选项。

验证

  • 验证在创建新凭据时,可以从 Credential Type 列表中选择新创建的凭证类型。

后续步骤

  • Edit 页面中,您可以修改详情或删除凭证。
  • 如果 Delete 选项被禁用,这意味着凭证正在使用凭证类型,且您必须在删除它前从所有使用的凭证中删除凭证类型。

其他资源

设置凭据.

第 4 章 项目

项目是规则手册的逻辑集合。它们必须是 git 存储库,且位于为 Ansible 集合中为 Event-Driven Ansible 内容定义的路径:项目根目录的 /extensions/eda/rulebooks

重要

为满足高可用性需求,Event-Driven Ansible 控制器通过 Ansible Automation Platform UI 共享集中式 Redis (REmote DIctionary Server)。当 Redis 不可用时,您将无法创建或同步项目。

4.1. 设置新项目

您可以设置项目,以在 Event-Driven Ansible 控制器中管理和存储规则手册。

先决条件

  • 以 Content Consumer 用户身份登录 Ansible Automation Platform Dashboard。
  • 如有必要,您可以设置一个凭证。如需更多信息,请参阅设置凭证 [ Setting up credentials] 部分。
  • 您有一个包含规则手册的现有存储库。

流程

  1. 登录到 Ansible Automation Platform 仪表板。
  2. 导航到 Automation DecisionsProjects
  3. 单击 Create project
  4. 插入以下内容:

    名称
    输入项目名称。
    描述
    此字段是可选的。
    源控制类型
    Git 是唯一可供使用的源控制类型。此字段是可选的。
    源控制 URL

    输入 Git、SSH 或 HTTP[S] 协议地址,如 GitHub 或 GitLab。此必填字段可编辑。请参阅 编辑项目 来查看如何编辑此字段会影响规则手册激活。

    注意

    此字段接受 SSH 私钥或私钥短语。若要启用这些私钥的使用,您的项目 URL 必须以 git@ 开头。

    Proxy
    这用于访问 HTTP 或 HTTPS 服务器。此字段是可选的,可编辑。请参阅 编辑项目 来查看如何编辑此字段会影响规则手册激活。
    源控制分支/标签/提交
    这是要检查的分支。除了分支外,您还可以输入标签、提交散列和任意 refs。除非您还提供了自定义 refspec,否则某些提交散列和 refs 可能不可用。此字段是可选的,可编辑。请参阅 编辑项目 来查看如何编辑此字段会影响规则手册激活。
    源控制 refspec
    要获取的 refspec (传递至 Ansible git 模块)。此参数允许通过分支字段访问原本不可用的引用。此字段是可选的,可编辑。请参阅 编辑项目 来查看如何编辑此字段会影响规则手册激活。如需更多信息,请参阅 示例
    源控制凭证
    这是用于通过提供的 Source 控制 URL 进行身份验证的可选凭证。
    内容签名验证凭证
    启用内容签名以验证内容在项目同步时是否保持安全。如果内容已被篡改,则该作业将不会运行。此字段是可选的。
    选项

    Verify SSL 选项默认为启用。启用此选项会在导入项目时验证 SSL 使用 HTTPS。

    注意

    如果您有使用自签名证书的本地存储库,您可以禁用这个选项。

  5. 选择 Create project

结果

您的项目现已创建,可以在 Projects 页面中管理。

保存新项目后,会显示项目的详情页面。从这里或项目列表视图中,您可以编辑或删除它。

4.2. 项目列表视图

Projects 页面中,您可以查看您创建的项目以及 StatusGit 哈希

注意

如果源控制中的规则手册改变,您可以通过从 Projects 列表视图中选择项目旁边的同步图标来重新同步项目。Git 哈希 更新代表该存储库的最新提交。如果要使用更新的项目,则必须重启或重新创建激活。

4.3. 编辑项目

您可以在创建项目后修改项目的各个方面。根据您所做的更改,规则手册激活可能会受到影响,要求您查看并重启它。

流程

  1. Projects 列表视图中,选择所需项目旁边的More Actions icon 图标。此时会显示 Edit 页面。
  2. 编辑所需字段。

    重要

    当您更新项目的 Source control URL 时,Source control branch/tag/commit,或 Source control refspec,Event-Driven Ansible 会自动触发项目重新同步。此过程更新 Event-Driven Ansible 控制器中可用的规则手册,并可能会影响现有的规则手册激活:

    • 规则手册内容更新 :当规则手册的内容 更改时,运行激活将继续使用旧内容。要应用较新的内容,您必须重启受影响的规则手册激活。如果您更新的 rulebook 内容附加到使用事件流的激活中,您必须在应用更新后将事件流重新附加到该激活,然后重启激活。
    • 新的 Rulebooks :在同步后,添加到存储库的任何新规则手册都会在数据库中可用。
    • 已删除规则手册 :在同步时从数据库中删除已删除的规则手册。然而,其关联的激活会继续运行,可以重启。检查和更新从源规则手册中分离的任何激活。
  3. 选择 Save project

4.4. 删除项目

如果您需要删除项目,Event-Driven Ansible 控制器接口提供了多个选项。

流程

  1. 要删除项目,请完成以下任一操作:

    • Projects 列表视图中,选择所需项目旁边的复选框,然后从页面菜单中点 More Actions 图标 WWN。
    • Projects 列表视图中,点所需项目旁的 More Actions 图标。
  2. 选择 Delete project
  3. 永久删除项目 窗口中,选择 Yes,确认我要删除此项目
  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 的 Quickstart创建和使用执行环境

5.2. 为 Event-Driven Ansible 构建自定义决策环境

决策环境是根据运行 Ansible Rulebooks 量身定制的执行环境。

与为自动化控制器运行 Ansible playbook 的执行环境类似,决策环境设计为为 Event-Driven Ansible 控制器运行规则手册。

您可以为 Event-Driven Ansible 创建自定义决策环境,它提供自定义维护或第三方事件源插件,该插件在默认的决策环境中不可用。

先决条件

  • Ansible Automation Platform > = 2.5
  • Event-Driven Ansible
  • Ansible Builder > = 3.0
重要
  • 在 Ansible Automation Platform 中使用正确的 Event-Driven Ansible 控制器决策环境,以防止规则手册激活失败。

    • 如果要将 Event-Driven Ansible 控制器连接到 Ansible Automation Platform 2.4,则必须使用 registry.redhat.io/ansible-automation-platform-24/de-minimal-rhel9:latest
    • 如果要将 Event-Driven Ansible 控制器连接到 Ansible Automation Platform 2.5,则必须使用 registry.redhat.io/ansible-automation-platform-25/de-minimal-rhel9:latest

流程

Example

以下是使用 de-minimal 作为基础镜像来构建带有 ansible.eda 集合的自定义决策环境的 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

另外,如果您需要其他 Python 软件包或 RPM,您可以在单个定义文件中添加以下内容:

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

5.3. 设置新的决策环境

您可以使用默认或自定义决策环境将决策环境导入到您的 Event-Driven Ansible 控制器中。

先决条件

  • 如有必要,您可以设置一个凭证。如需更多信息,请参阅设置凭证 部分。
  • 您已将决策环境镜像推送到镜像存储库,或者您选择使用位于 registry.redhat.io 中的 de-minimal 镜像。

流程

  1. 登录到 Ansible Automation Platform。
  2. 导航到 Automation DecisionsDecision Environments
  3. Create decision environment
  4. 插入以下内容:

    名称
    插入名称。
    描述
    此字段是可选的。
    机构(Organization)
    选择要与决策环境关联的机构。
    Image
    这是完整的镜像位置,包括容器 registry表、镜像名称和版本标签。
    凭证
    此字段是可选的。这是使用决策环境镜像所需的凭证。
  5. 选择 Create decision environment

结果

您的决策环境现已创建,可以在 Decision Environments 页面中管理。

保存新的决策环境后,将显示决策环境的详细信息页面。您可以从那里或 Decision Environments 列表视图编辑或删除它。

第 6 章 Red Hat Ansible Automation Platform 凭证

当在 Ansible Automation Platform 2.5 上部署 Event-Driven Ansible 控制器时,您可以创建一个 Red Hat Ansible Automation Platform 凭证来通过自动化控制器 URL 和用户名和密码连接到自动化控制器。创建后,您可以将 Red Hat Ansible Automation Platform 凭证附加到规则手册中,并使用它来运行规则手册激活。这些凭证提供了一种简单的方式来配置自动化控制器和 Event-Driven Ansible 控制器之间的通信,支持您的规则手册激活来启动作业模板。

注意

如果您使用 Ansible Automation Platform 2.4 部署 Event-Driven Ansible 控制器,您可能使用控制器令牌连接自动化控制器和 Event-Driven Ansible 控制器。这些控制器令牌已在 Ansible Automation Platform 2.5 中已弃用。要删除已弃用的控制器令牌和与其关联的规则手册激活,请完成以下步骤,从 替换控制器令牌放在 Ansible Automation Platform 2.5 中,然后再继续 设置 Red Hat Ansible Automation Platform 凭证

要在 Red Hat Ansible Automation Platform 2.5 中使用 Event-Driven Ansible 控制器,您必须将环境中配置的传统控制器令牌替换为 Red Hat Ansible Automation Platform 凭证,因为控制器令牌已被弃用。

6.1.1. 使用控制器令牌删除规则手册激活

要替换控制器令牌,您必须删除与其关联的规则手册激活。

流程

  1. 登录到 Ansible Automation Platform 仪表板。
  2. 在顶部导航面板中,选择 Automation DecisionsRulebook Activations
  3. 选择具有控制器令牌的 rulebook 激活。
  4. 选择 Rulebook Activation enabled/disabled 切换开关旁的 More Actions 图标
  5. 选择 Create rulebook 激活
  6. 在 窗口中,选择 Yes,我确认我要删除这些 X 规则手册激活
  7. 选择 Delete rulebook 激活

6.1.2. 删除控制器令牌

在设置 Red Hat Ansible Automation Platform 凭证前,您必须删除任何现有控制器令牌。

先决条件

  • 您已删除所有使用控制器令牌的规则手册激活。

流程

  1. 登录到 Ansible Automation Platform 仪表板。
  2. 在顶部导航面板中选择您的个人资料。
  3. 单击 用户详细信息
  4. 选择 Tokens 选项卡。
  5. 删除所有以前的控制器令牌。

后续步骤

删除控制器令牌和规则手册激活后,继续 设置 Red Hat Ansible Automation Platform 凭证

6.2. 设置 Red Hat Ansible Automation Platform 凭证

使用自动化控制器 URL 和用户名和密码,创建一个 Red Hat Ansible Automation Platform 凭证以连接到自动化控制器。

先决条件

  • 您已创建了用户。
  • 已获得 URL 和凭证来访问自动化控制器。

流程

  1. 登录到 Ansible Automation Platform 仪表板。
  2. 在导航面板中,选择 Automation DecisionsInfrastructureCredentials
  3. Create credential
  4. 插入以下内容:

    名称
    插入名称。
    描述
    此字段是可选的。
    机构(Organization)
    单击列表以选择一个机构,或选择 Default
    凭证类型

    点列表并选择 Red Hat Ansible Automation Platform

    注意

    当您选择凭证类型时,Type Details 部分会显示适用于您选择的凭证类型的字段。

    警告

    如果您计划使用备份和恢复操作将 Ansible Automation Platform 实例迁移到不同的集群或一组新的主机名,Red Hat Ansible Automation Platform 凭证将中断,您的规则手册激活将失败。在恢复操作完成后,您必须手动编辑和更新自动化控制器 URL 和关联的凭证,以恢复连接。

  5. 在所需的 Red Hat Ansible Automation Platform 字段中,输入您的自动化控制器 URL。

    注意

    对于带有自动化控制器 2.4 的 Event-Driven Ansible 控制器 2.5,请使用以下示例: https://<your_controller_host>

    对于 Ansible Automation Platform 2.5,请使用以下示例: https://<your_gateway_host>/api/controller/

  6. 输入有效的 UsernamePassword,或输入 Oauth Token
  7. Create credential

后续步骤

创建此凭证后,您可以使用它来配置规则手册激活。

第 7 章 规则手册激活

规则手册是一组条件规则,即 Event-Driven Ansible 用来在事件驱动的自动化模型中执行 IT 操作。规则手册是用户告诉 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

要查看更多详细信息,请参阅 Actions

规则手册激活是由执行特定规则手册的决策环境定义的后台运行的进程。您可以按照设置规则手册激活 来设置规则手册激活

警告

红帽不推荐使用带有 1 postgres 数据库的不支持的源插件。这可能会给您使用 Ansible Automation Platform 带来潜在的风险。

重要

为满足高可用性需求,Event-Driven Ansible 控制器通过 Ansible Automation Platform UI 共享集中式 Redis (REmote DIctionary Server)。当 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 仪表板中创建和配置规则手册激活。此过程可确保对事件驱动的自动化进行有效管理和部署。

先决条件

  • 以 Content Consumer 用户身份登录 Ansible Automation Platform Dashboard。
  • 您已设置了一个项目。
  • 您已设置了决策环境。

流程

  1. 登录到 Ansible Automation Platform。
  2. 导航到 Automation DecisionsRulebook Activations
  3. Create rulebook activation
  4. 插入以下内容:

    名称
    插入名称。
    描述
    此字段是可选的。
    机构(Organization)
    输入您的机构名称,或者从列表中选择 Default。
    项目
    项目是规则手册的逻辑集合。此字段是可选的。
    规则手册
    规则手册会根据所选的项目显示。
    凭证

    为此规则手册激活选择 0 或更多凭证。此字段是可选的。

    注意
    • 此字段中显示的凭证根据您的规则激活自定义,仅包含以下凭证类型:Vault、Red Hat Ansible Automation Platform 或您创建的任何自定义凭证类型。有关凭证的更多信息,请参阅 凭证
    • 如果您计划使用 Red Hat Ansible Automation Platform 凭证,则只能为 规则手册激活选择 1 Red Hat Ansible Automation Platform 凭证类型。
    决策环境

    决策环境是一个容器镜像,用于运行 Ansible 规则手册。

    注意

    在 Event-Driven Ansible 控制器中,您无法自定义决策环境的拉取策略。默认情况下,它遵循 always 策略的行为。每次启动激活时,系统会尝试拉取镜像的最新版本。

    重启策略

    这是决定在运行源插件的容器进程结束后激活应如何重启的策略。

    • 策略:

      1. Always :这会立即重新启动规则手册激活,无论它是否成功结束,并且不会超过 5 次。
      2. Never :当容器进程结束时,这永远不会重启规则手册激活。
      3. 失败时,这会默认在 60 秒后重启规则手册激活,只有在容器进程失败时,才会发生超过 5 次。
    日志级别

    此字段定义您记录的事件中的严重性和类型。

    • levels:

      1. 错误: 包含激活 History 选项卡中显示的错误消息的日志。
      2. info :包含有关规则手册激活的有用信息的日志,如成功或失败、触发的操作名称及其关联的操作事件以及错误。
      3. debug :包含仅在 debug 阶段有用的信息的日志,在生产期间可能只有较少的值。 此日志级别包括 error 和 log level data。
    服务名称
    这定义了 Kubernetes 的服务名称,以便在激活公开端口时配置入站连接。此字段是可选的。
    启用规则手册激活?
    这会自动启用规则手册激活来运行。
    变量

    规则手册的变量采用 JSON 或 YAML 格式。内容等同于通过 ansible-rulebook 命令的 --vars 标志传递的文件。

    注意

    在自动化控制器和 Event-Driven Ansible 控制器的上下文中,您可以使用 extra_vars 和凭证来存储各种信息。但是,凭证是存储密码或 API 密钥等敏感信息的首选方法,因为它们提供更好的安全性和集中管理,而 extra_vars 更适合传递动态的、非敏感数据。

    选项
    如果您不想在 Rule Audit 中看到您的 事件,请检查 Skip audit 选项。
  5. Create rulebook activation

结果

现在,您的规则手册激活已创建,可以在 Rulebook Activations 页面上管理。

保存新的 rulebook 激活后,会显示 rulebook 激活的详情页面,并显示 PendingRunningFailed 状态。从 there 或 Rulebook Activations 列表视图中,您可以重启或删除它。

注意

有时,当源插件关闭时,它会导致规则手册在一定时间后安全退出。当规则手册激活关闭时,任何等待执行的任务都会被取消,并将信息级别消息发送到激活日志。如需更多信息,请参阅 规则手册

7.3. 规则手册激活列表视图

Rulebook Activations 页面中,您可以查看您创建的规则手册激活以及 Status、带有 规则规则数Fire countRestart count

如果 StatusRunning,这表示规则手册激活在后台运行,并根据规则手册中声明的规则执行必要的操作。

您可以从 Rulebook Activations 列表视图中选择激活来查看更多详情。

对于已运行的所有激活,您可以查看 DetailsHistory 选项卡,以获取有关发生情况的更多信息。

7.3.1. 查看激活输出

您可以在 History 选项卡中查看激活的输出。

流程

  1. 选择 History 选项卡来访问所有激活实例的列表。激活实例代表激活的单个执行。
  2. 然后选择您要查看的激活实例。此时会显示激活实例的 Output

后续步骤

要查看处于和触发某个操作的事件,请导航到 Automation DecisionsRule Audit,并按照 Rule Audit 部分中的说明进行操作。

7.4. 启用和禁用规则手册激活

您可以启用或禁用规则手册激活来控制它们何时运行。禁用激活对故障排除或临时停止自动化而不删除配置非常有用。

流程

  1. 选择行级的切换,以启用或禁用您选择的规则手册。
  2. 在 窗口中,选择 Yes,确认我要启用/禁用这些 X 规则手册激活
  3. 选择 Enable/Disable rulebook activation

7.5. 重启规则手册激活

您可以重启规则手册激活来快速重新传输其自动化,这在进行更新或从错误中恢复非常有用。

注意

如果当前启用并且重启策略在创建时被设置为 Always,您只能重新启动一个规则手册激活。

流程

  1. 选择 Rulebook Activation enabled/disabled 切换开关旁边的 More Actions 图标
  2. 选择 Restart rulebook 激活
  3. 在 窗口中,选择 Yes,确认我要重新启动这些 X 规则手册激活
  4. 选择 Restart rulebook 激活

7.6. 编辑规则手册激活

您可以在创建或运行规则手册激活后编辑规则手册激活,以更正字段(log 级别、重新启动策略、关闭或打开)或帮助缓解失败导致的问题。

流程

  1. 在 Rulebook Activations 页面上,在您要编辑的激活旁边,首先将 Rulebook 激活按钮切换为 off 位置,以禁用激活。

    此时会显示 Disable rulebook activations 信息,要求您确认要禁用激活。

  2. 选择 Yes, I 确认我要禁用这些 <1> 规则手册激活 复选框,然后单击 Disable rulebook activations
  3. 在 rulebook 激活旁,点 Edit 图标。这会进入 Edit 表单。

    注意

    您还可以单击 Rulebook Activations 页面上的 rulebook 激活来访问 Edit 功能,将 Rulebook 激活按钮切换为 off 位置,确认您要禁用激活,然后单击页面右上角的 Edit rulebook 激活按钮来访问 Edit 表单。

  4. 编辑所需字段。

    注意

    如果您希望立即运行激活,您可以将 规则手册激活 按钮切换到位置,然后保存您的更改。

  5. Save rulebook activation

结果

这会返回到 Rulebook Activations 页面。

7.7. 复制规则手册激活

当使用与现有规则手册激活类似的字段输入设置新的规则手册激活时,您可以使用 Duplicate rulebook 激活 功能,而不是手动输入到每个字段。虽然设置规则手册激活的过程可能是一个冗长的过程,但能够从现有激活中复制所需字段可以节省时间,并在某些情况下降低了人为错误的可能性。

流程

  1. 在 Rulebook Activations 页面中,点您要重复的激活行中的 More Actions 图标 &&。 此时会显示 More Actions 列表,它有三个选项:

    • 重启规则手册激活
    • 重复规则手册激活
    • 删除规则手册激活
  2. 选择 Duplicate rulebook 激活

    此时会显示一条信息:"<Name of rulebook activation 1> duplicated."最初,新重复的激活显示在 Rulebook Activations 页面上,其名称与原始激活的名称相同,后跟 24 小时格式的时间戳(例如,<Name of rulebook activation 1> @ 18:43:27)。

    重要

    原始规则手册激活会在复制后继续运行。如果您试图启用重复的激活,但没有编辑字段(包括 Name 字段)来区分它,则会显示一条信息,提醒您规则手册激活与原始数据重复,并启用可能会失败,或导致重复的作业和其他复杂情况。

  3. 在运行重复的规则手册激活前,请完成以下内容来编辑字段:

    1. 在重复的规则手册激活旁边,点 Edit 图标。这会进入 Edit 表单。
    2. 编辑所需字段。

      注意

      确保您已为新重复激活一个有意义的名称 以便将其与原始激活区分开。

  4. Enable rulebook 激活按钮切换为位置。
  5. 确认所有编辑完成后,单击 Save rulebook activation

结果

这会启动规则手册激活,如果成功运行,其状态会更改为 RunningCompleted

7.8. 删除规则手册激活

您可以删除规则手册激活,以便在不再需要时永久删除它们。

流程

  1. 选择 Rulebook Activation enabled/disabled 切换开关旁的 More Actions 图标
  2. 选择 Create rulebook 激活
  3. 在 窗口中,选择 Yes,我确认我要删除这些 X 规则手册激活
  4. 选择 Delete rulebook 激活

7.9. 激活 Webhook 规则手册

在 Openshift 环境中,您可以通过创建一个公开规则激活的 Kubernetes 服务的路由来允许 Webhook 通过给定端口访问 activation-job-pod。

先决条件

  • 您已创建了规则手册激活。
注意

以下是带有给定 Webhook 的 rulebook 示例:

- 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

流程

  1. 创建一个路由(在 OpenShift Container Platform 中)以公开服务。以下是 ansible-rulebook 源的 Route 示例,它要求 POST 在决策环境 pod 的端口 5000 上:

    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
  2. 在创建路由时,使用 到 Route URL 的 Post 进行测试

    注意

    您不需要端口,因为它在 Route (targetPort) 上指定。

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

7.10. 使用 Kubernetes 测试

使用 Kubernetes,您可以创建 Ingress,或公开端口,但不能用于生产环境。

流程

  1. 运行以下命令,为给定服务公开集群中的端口:

    kubectl port-forward svc/<ACTIVATION_SVC_NAME> 5000:5000
  2. localhost:5000 发出 HTTP 请求,以触发规则手册:

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

第 8 章 规则手册激活故障排除

规则手册激活偶尔可能会因为各种原因而失败。虽然许多问题可以通过基本检查解决,但诊断分布式系统中的故障需要可靠的日志记录。

事件驱动的 Ansible 增强的日志记录策略包括为所有输出添加唯一跟踪标识符,以显著改进故障排除。

查看本章中可能存在的问题列表,该列表可能会导致激活失败以及解决问题的建议。有关使用新标识符过滤的详细日志,请参阅 Event-Driven Ansible 日志过滤

8.1. event-Driven Ansible 日志过滤

event-Driven Ansible 包括所有日志输出中的跟踪标识符,以显著改进故障排除。这些标识符有助于跟踪多个服务和日志文件之间的用户操作和激活进程。

Expand
表 8.1. event-Driven Ansible 日志跟踪 ID
identifier缩写用途位置

X-REQUEST-ID

rid

通过整个 Event-Driven Ansible 请求生命周期跟踪平台网关的 HTTP 请求。使用此选项将 UI 操作或 API 调用与后端处理相关联。

包含在 HTTP 响应标头和 Event-Driven Ansible 日志条目中。

日志跟踪 ID

tid

跟踪通过完成创建后的 激活生命周期,并在重新启动和多个日志文件后保留。

包含在所有与激活相关的日志条目中。它可以通过 UI 中的激活 History 选项卡获得。

激活实例 ID

aiid

标识特定于规则手册激活的单一执行实例的日志,允许您查看该运行的 ansible-rulebook 输出。

包含在激活日志中。

注意

不是所有进程都源自用户或外部客户端。当 Event-Driven Ansible 编配器在内部触发进程(如 monitor 请求)时,会在内部生成 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 通过后端日志(worker、调度程序、API 等)进行搜索。这会过滤不相关的 noise,可让您专注于所有服务中特定请求或激活的完整时间表。
  3. 关联时间表:

    1. 使用常见的 tid 在不同日志文件和服务间跟踪激活的进度(或失败)。
  4. 使用支持工具:

    1. 如有必要,使用 sosreportmustgather 工具,它会自动从 /var/log/ansible-automation-platform/eda/ 收集所有相关 Event-Driven Ansible 日志。

8.2. 激活处于 Pending 状态

如果您的规则手册激活处于 Pending 状态,请执行以下步骤。

流程

  1. 确认是否有其他正在运行的激活,并且您已达到限制(如内存或 CPU 限值)。

    1. 如果其他激活正在运行,请终止一个或多个激活(如果可能)。
    2. 如果没有,请检查默认 worker、Redis 和激活 worker 是否都在运行。如果所有系统都按预期工作,请检查 worker、调度程序、API 和 nginx 容器和服务中的 eda-server 内部日志,以查看是否可以确定问题。

      注意

      这些日志显示问题来源,如代码引发的异常、网络问题的运行时错误,或者规则规则代码出现错误。如果您的内部日志没有提供导致解决的信息,请向红帽支持报告问题。

    3. 如果您需要调整,请参阅 修改同时规则手册激活的数量

      注意

      要在 OpenShift Container Platform 部署中调整 Ansible Automation Platform Operator 的最大同时激活数量,请参阅 在 OpenShift Container Platform 上安装 期间或之后修改同时规则激活的数量

8.3. 激活重启

如果您的规则手册激活重启,请执行以下步骤。

流程

  1. 登录到 Ansible Automation Platform。
  2. 在导航面板中,选择 Automation DecisionsRulebook Activations
  3. Rulebook Activations 页面中,选择您继续重启的列表中的激活。此时会显示 Details 页面。
  4. 单击 History 选项卡以了解更多信息,然后选择继续重新启动的 rulebook 激活。此时会显示 Details 选项卡,并显示输出信息。
  5. 检查您的激活的 Restart policy 字段。

    可用的选择有三个: 在失败时(在 容器进程失败时重启规则手册激活),Always (无论没有超过 5 个重启的成功或失败)或 Never (容器进程结束时会重启)或 Never (容器进程结束时会重启)。

    1. 确认您的 rulebook 激活重启策略已设置为 On failure。这表明问题导致了失败。
    2. 要可能诊断问题,请检查规则手册激活的 YAML 代码和实例日志以查找错误。
    3. 如果无法使用 restart 策略值找到解决方案,请继续执行与 Log level 相关的后续步骤。
  6. 检查您的激活的日志级别。

    1. 如果您的默认日志级别为 Error,请返回到 Rulebook Activation 页面,并在 设置规则手册激活过程中重新创建您的激活
    2. 将日志 级别更改为 Debug
    3. 再次运行激活,然后从激活详情页面导航到 History 选项卡。
    4. History 页面中,单击您最近的激活之一并查看 Output

8.4. 事件不会被规则手册激活处理

如果您的规则手册激活正在运行但没有处理事件,最常见的原因是预期事件源和规则手册中定义的源不匹配。

流程

  1. 检查规则手册源: 查看规则手册 YAML 中定义的源插件(如 ansible.eda.webhook、ansible.eda.kafka)。
  2. 验证事件输入: 确认您要发送到 Event-Driven Ansible 控制器的事件是否与规则手册中定义的源插件兼容。如果 rulebook 需要 Kafka 信息,则无法处理通用 Webhook 事件。
  3. 确认激活映射 : 如果您使用事件流,请确保在激活设置过程中将正确的事件流映射到规则手册中。此处不匹配将导致激活没有接收数据。

8.5. 尽管收到事件,则不会触发的操作

如果您的规则手册激活 正在运行 并成功接收事件,但没有执行任何操作,则问题可能位于规则手册逻辑中。

流程

  1. 检查规则条件: 查看规则手册 YAML,以确认条件( when 语句)已准确编写,并且与传入事件有效负载的结构和值完全匹配。
  2. 验证缩进和语法: 确保所有规则手册语法和缩进都正确,因为简单的错误可能会阻止容器引擎评估条件。
  3. 验证操作: 确认指定的操作是一个可识别且正确配置的操作(例如,带有正确参数的 run_job_template )。

8.6. 事件流没有将事件发送到激活

如果您使用事件流将事件发送到规则手册激活,则有时这些事件可能无法成功路由到您的规则手册激活。

流程

  • 尝试以下选项来解决这一点。

    1. 确保 Event-Driven Ansible 控制器中的每个事件流 都不 处于 Test 模式。这意味着激活不会接收事件。
    2. 验证原始服务是否已正确发送请求。
    3. 检查您的平台网关实例的网络连接是否稳定。如果您设置了事件流,这是来自发送者的事件流请求的条目。
    4. 验证平台网关中的代理是否正在运行。
    5. 确认事件流 worker 已启动并在运行,并且能够处理请求。
    6. 验证您的凭证是否在事件流中正确设置。
    7. 确认请求符合由设置凭证决定的身份验证机制(例如,基本必须包含带有 credentials 或 HMAC 的标头,必须在标头中包含内容的签名)。

      注意

      在 Event-Driven Ansible 控制器中可能会更改了凭证,但在原始服务中不会更新。

    8. 验证在激活中运行的规则手册会对这些事件做出反应。这表明您编写了事件源,并添加消耗出事件的操作。 否则,事件会到达激活,但没有激活它。
    9. 如果您使用自签名证书,您可能需要在从供应商发送 webhook 时禁用证书验证。大多数供应商都可以选择禁用证书验证来测试或非生产环境。

在运行激活时,您可能会遇到与自动化控制器的连接失败。

流程

  1. 为了帮助解决这个问题,请确认您已设置了 Red Hat Ansible Automation Platform 凭证,并获取了正确的自动化控制器 URL。

    1. 如果您还没有设置 Red Hat Ansible Automation Platform 凭证,请按照 设置 Red Hat Ansible Automation Platform 凭证 的步骤进行操作。确保此凭证的主机设置为以下 URL 格式: https://<your_gateway>/api/controller
    2. 完成此过程后,尝试再次设置您的规则手册激活。

第 9 章 规则审计

规则审计允许审计由某个时间点激活的所有规则触发的规则。

Rule Audit 列表视图显示每个事件与规则规则内的条件匹配时的列表,并触发一个操作。列表中显示您的规则规则,每个标题都与已执行的规则匹配。

9.1. 查看规则审计详情

Rule Audit 列表视图中,您可以检查触发特定操作的事件。

流程

  1. 在导航面板中,选择 Automation DecisionsRule Audit
  2. 选择所需的规则,这将进入 Details 选项卡。

结果

在这里,您可以在创建时查看它,上次触发时,以及它对应的规则手册激活。

9.2. 查看规则审计事件

您可以选择特定的规则来查看其对应事件的列表,然后检查每个事件的日志、源类型和时间戳以获取详细信息。

流程

  1. 在导航面板中,选择 Automation DecisionsRule Audit
  2. 选择所需的规则,这将进入 Details 选项卡。要查看触发某个操作的所有事件,请选择 Events 选项卡。这表明您触发了操作的事件。
  3. 选择一个事件来查看 事件日志,以及 Source typeTimestamp

9.3. 查看规则审计操作

您可以选择特定的规则来查看其对应操作的列表并查看其输出。

流程

  1. 在导航面板中,选择 Automation DecisionsRule Audit
  2. 选择所需规则,然后选择 Actions 选项卡。

结果

您可以在这里查看已执行的操作。有些操作链接到 Automation Execution,您可以在其中查看输出。

第 10 章 简化事件路由

简化事件路由可让 Event-Driven Ansible 控制器使用事件流从各种远程系统捕获和分析数据。使用事件流,您可以从如 GitHub 或 GitLab 等远程系统发送事件到 Event-Driven Ansible 控制器。您可以通过在规则手册中交换源,将 1 个或更多个事件流附加到激活中。

事件源是将您的源连接到您的规则手册的简单方法。通过此功能,您可以创建一个端点来从事件源接收警报,然后在多个规则手册中使用事件。

10.1. 事件流

事件流可以将事件从远程系统发送到 Event-Driven Ansible 控制器。在典型的集合中,服务器通过互联网将数据发送到事件流,再到 Event-Driven Ansible 事件流接收器。当数据通过互联网时,请求必须经过身份验证。根据 webhook 供应商或远程系统,验证方法可能会有所不同。

event-Driven Ansible 控制器支持六个不同的事件流类型。

Expand
表 10.1. 事件流类型
类型描述Vendor

HMAC

散列消息身份验证代码(HMAC)。在 Event-Driven Ansible 控制器和供应商 webhook 服务器之间使用共享 secret。这保证了消息的完整性。

GitHub

基本身份验证

使用 HTTP 基本身份验证。

Datadog, Dynatrace

令牌身份验证

使用令牌身份验证。通常,HTTP 标头是 Authorization,但 Gitlab 等供应商使用 X-Gitlab-Token

GitLab, ServiceNow

OAuth2

使用 Machine-to-Machine (M2M)模式,以及名为 client credentials 的授权类型。令牌不透明。

Dynatrace

使用 JWT 的 OAuth2

使用 M2M 模式以及名为 client credentials 的授权类型。令牌是 JSON Web Token (JWT)。

Datadog

ECDSA

Elliptic Curve Digital Signature Algorithm

SendGrid, Twilio

event-Driven Ansible 控制器还支持四个基于 6 个基本事件流类型的其他特殊事件流:

  • GitLab 事件流
  • GitHub 事件流
  • ServiceNow 事件流
  • Dynatrace 事件流

这些专用类型限制了您通过添加默认值的参数。例如,GitHub Event Stream 是 HMAC 事件流的分类,其中有许多字段已经填充。保存 GitHub Event Stream 凭证后,会显示 GitHub 事件流的建议默认值。

10.2. 创建事件流凭证

在使用事件流前,您必须首先创建一个事件流凭证。

先决条件

  • 每个事件流都必须有一个凭证。

流程

  1. 登录到 Ansible Automation Platform 仪表板。
  2. 在导航面板中,选择 Automation DecisionsInfrastructureCredentials
  3. Create credential
  4. 插入以下内容:

    名称
    插入名称。
    描述
    此字段是可选的。
    机构(Organization)
    单击列表以选择一个机构,或选择 Default
    凭证类型

    单击列表以选择您的凭据类型。

    注意

    当您选择凭证类型时,Type Details 部分会显示适用于您选择的凭证类型的字段。

    类型详情
    为您选择的凭证类型添加请求的信息。例如,如果您选择了 GitHub Event Stream 凭证类型,则需要在 Event-Driven Ansible 控制器和远程服务器之间添加 HMAC Secret (symmetrical shared secret)。
  5. Create credential

结果

此时会显示 Details 页面。从 there 或 Credentials 列表视图中,您可以编辑或删除它。

10.3. 创建事件流

您可以创建附加到规则手册激活的事件流。

先决条件

  • 如果要将事件流附加到规则手册激活,请确保您的激活已设置决策环境和项目。
  • 如果您计划连接到自动化控制器来运行规则手册激活,请确保除了决策环境和项目外,还创建了 Red Hat Ansible Automation Platform 凭证类型。如需更多信息,请参阅设置 Red Hat Ansible Automation Platform 凭证

流程

  1. 登录到 Ansible Automation Platform。
  2. 在导航面板中,选择 Automation DecisionsEvent Streams
  3. Create event stream
  4. 插入以下内容:

    名称
    插入名称。
    机构(Organization)
    单击列表以选择一个机构,或选择 Default
    事件流类型

    选择您首选的事件流类型。

    注意

    此列表至少显示 10 个默认事件流类型,可用于验证来自远程服务器的连接。

    凭证
    从列表中选择一个凭证,最好是您为事件流创建的凭证。
    Headers

    输入 HTTP 标头密钥,用逗号分开,您要包含在事件有效负载中。

    重要

    如果您的自动化依赖于事件有效负载中存在的 HTTP 标头,您必须明确定义它们以避免意外公开敏感信息。有关 HTTP 标头以及如何安全地配置它们的更多信息,请参阅为事件流安全地配置 HTTP 标头https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/html/using_automation_decisions/simplified-event-routing#eda-http-headers

    将事件转发到规则手册激活

    使用这个选项启用或禁用将事件转发到规则手册激活的功能。

    注意

    在诊断连接和评估传入的数据时,可以禁用事件流的事件转发以进行测试。禁用 Forward 事件到 rulebook 激活 选项后,您可以测试与远程系统的事件流连接,分析标头和有效负载,并诊断凭证问题。这样可确保事件不会被转发到规则手册激活,从而导致在测试模式中意外触发规则和条件。有些企业可能会有策略定期更改 secret 和密码。您可以在创建事件流后随时启用/禁用这个选项。

  5. Create event stream

结果

创建事件流后,会出现以下输出:

  • 此时会显示 Details 页面。在 there 或 Event Streams 列表视图中,您可以编辑或删除它。另外,Event Streams 页面会显示您创建的所有事件流,以及每个事件的以下列: Events receivedLast event receivedEvent stream type。当前两列通过事件流接收外部数据时,它们会持续更新,以让您了解他们从远程系统接收事件。
  • 如果您禁用了事件流,则 Details 页面会显示警告消息,这个事件流会被禁用

    注意

    创建事件流后,在关联的凭证流被删除后,无法删除相关的凭证。

  • 在发送事件的远程系统中配置 webhook 时,您的新事件流会生成所需的 URL。

10.4. HTTP 标头

在 Event-Driven Ansible 和事件流的情况下,HTTP 标头会扮演一个重要角色,因为它们从第三方源(如 GitHub、监控工具或专有 webhook)执行传入的事件所需的上下文和安全信息。它们包括以下功能:

Authentication and non-repudiation
这是最重要的使用。标头通常包含令牌、API 密钥或安全签名(如 X-Hub-Signature 标头中的 HMAC),Event-Driven Ansible 用来验证 发送 者的身份,并确保事件有效负载没有被修改。这支持事件来自合法来源的非弹性。
调试和日志记录
标头提供与延迟或失败事件相关的关键数据点(DateUser-AgentX-Request-ID)以帮助系统管理员和 SREs 调试问题。

对于所有 HTTP 通信,标头是至关重要的,提供几个不同的目的:

  • 上下文和元数据: 描述正在发送的数据(如 Content-Type: application/json, Content-Length: 1024)。
  • 客户端/服务器功能 : 对发送者的功能或首选项(例如 Accept-Language: en-US)的接收方的格式。
  • Authentication/Authorization: Carry 安全凭证(例如 Authorization: Bearer <token>)。
  • Cache 控制客户端和代理应缓存内容的方式(例如,Cache-Control: max-age=3600)。
  • 路由和跟踪 :它们可以通过自定义标头(如 X-Request-ID)促进网络路由和事务跟踪

10.4.1. 为事件流安全地配置 HTTP 标头

要增强事件流安全性,您必须明确定义传递哪些 HTTP 标头。这些标头包含处理所需的关键上下文和验证数据。

流程

  1. 要包括所有 HTTP 标头,请在 Headers 字段中输入星号 rolebinding。这允许所有 HTTP 标头,但几个标头除外:

    • excluded :X-EnvoyX-Trusted-ProxyX-Forwarded-ForX-Real-Id开头的标头
    • redacted: Authorization 标头(例如 Authorization: Redacted

      重要

      如果 Headers 字段为空,则任何 HTTP 标头都添加到 Production 和 Test 模式中的事件有效负载中。

  2. 要包括一组特定的 HTTP 标头,以逗号分隔的字符串(如 Host,Authorization,X-Request-ID)输入所需标头的名称。

10.5. 配置远程系统以发送事件

创建事件流后,您必须配置远程系统,以将事件发送到 Event-Driven Ansible 控制器。此配置所使用的方法因您选择的事件流凭证类型的厂商而异。

先决条件

  • 创建事件流时生成的 URL
  • 您在事件流凭证中设置的 secret 或密码

流程

以下示例演示了如何在远程系统(如 GitHub)中配置 webhook,以将事件发送到 Event-Driven Ansible 控制器。每个供应商都有唯一的方法来配置远程系统,以将事件发送到 Event-Driven Ansible 控制器。

  1. 登录到您的 GitHub 存储库。
  2. 点击您的个人资料名称 →您的仓库

    注意

    如果您没有存储库,请单击 New 以创建新存储库,选择所有者,添加 Repository 名称,然后单击 Create repository

  3. 进入 Settings (tool bar)。
  4. General 导航窗格中,选择 Webhooks
  5. Add webhook
  6. Payload URL 字段中,粘贴您在创建事件流时保存的 URL。
  7. Content type 列表中选择 application/json
  8. 输入您的 Secret
  9. Add webhook

结果

添加 webhook 后,它会尝试发送测试有效负载,以确保两个系统(GitHub 和 Event-Driven Ansible 控制器)之间存在连接。如果数据成功发送,您将看到 Webhook URL 旁边的绿色勾号,其中包含消息,Last delivery was successful

10.6. 验证您的事件流是否正常工作

验证您是否可以使用事件流连接到远程系统并接收数据。

  1. 登录到 Ansible Automation Platform。
  2. 在导航面板中,选择 Automation DecisionsEvent Streams
  3. 选择您创建的事件流以验证连接,并确保事件流将数据发送到规则手册激活。
  4. 验证这些事件是否已收到。接收的事件数量 以及包含事件详情的标头一起显示。

    Verify event streams work

    如果在 UI 中向下滚动,您还可以查看有效负载的正文,其中包含有关 Webhook 的更多信息。

    事件流的 HeaderBody 部分显示在 Details 页面中。它们根据发送事件的供应商而有所不同。标头和正文可用于检查事件有效负载中的属性,这有助于在规则手册中编写条件。

  5. Forward 事件切换到 rulebook 激活 选项,以便您可以将事件推送到规则手册激活。

结果

这会将事件流移到生产环境模式,并可以轻松地附加到规则手册激活。当关闭这个选项时,您能够禁用将事件转发到规则手册激活,并显示 This event stream is disabled 信息。

10.7. 替换源并附加事件流以激活

在创建规则手册激活时,您可以使用事件流在规则手册激活中交换源映射,并简化从外部源到 Event-Driven Ansible 控制器的路由。

有关源映射需要注意的几个关键点:

  1. 事件流只能在 rulebook 源交换中使用一次。如果您在规则手册中有多个源,则只能替换每个源一次。
  2. 源映射仅在当前规则手册激活中发生。您必须使用同一规则手册对任何其他激活重复这个过程。
  3. 只有在规则手册未修改时,源映射才有效。如果在源映射过程中修改了规则手册,则源映射将失败,且必须重复。
  4. 如果在源映射创建后修改了规则手册,并且发生 重启,则规则手册激活会失败。

流程

  1. 登录到 Ansible Automation Platform。
  2. 在导航面板中,选择 Automation DecisionsRulebook Activations
  3. Create rulebook activation
  4. 插入以下内容:

    名称
    插入名称。
    描述
    此字段是可选的。
    机构(Organization)
    输入您的机构名称,或者从列表中选择 Default。
    项目

    项目是规则手册的逻辑集合。此字段是可选的。

    注意

    虽然此字段是可选的,但选择一个项目有助于优化您的规则手册选择列表。

    规则手册

    规则手册根据所选的项目显示。选择规则手册。

    注意

    选择了规则手册后,启用 Event stream 字段。您可以点齿轮图标来显示事件流映射表单。

    事件流

    此时会显示所有可用的事件流,并设置为将事件转发到规则处理器。如果您还没有创建任何事件流,此字段会被禁用。

    点 gear 图标显示事件流映射 UI。

    Event streams mapping UI

    完成以下字段:

    规则手册源

    规则手册可以包含多个规则集之间的源。您可以在多个激活中将同一规则手册映射到多个事件流。在管理事件流时,未命名的源会被分配临时名称(__SOURCE {n})来进行识别。

    从列表中选择 __SOURCE_1。

    事件流

    从列表中选择您的事件流名称。

    点击 Save

    事件流可以替换规则中的匹配源,是可以把各种事件源连接到规则手册激活的服务器端 Webhook。可替换为事件源 ansible.eda.pg_listener 类型的源源的源类型包括 ansible.eda.webhook 和其他兼容的 webhook 源插件。替换所选源只会影响这个激活,并修改 rulebook 的源类型、源名称和参数。过滤器、规则、条件和操作都不受影响。

    您可以选择要替换为单个事件流的源。如果您的规则手册中有多个源,您可以选择将每个源替换为事件流,但您不需要替换每个源。下图显示了可以替换哪些源。

    Event streams replacement sources

    pink 中的项目演示了可以替换的源: source type、source name 和 parameters。剩余的项目(filters、规则和操作)没有被替换。

    凭证

    为此规则手册激活选择 0 或更多凭证。此字段是可选的。

    注意

    此字段中显示的凭证根据您的规则激活自定义,仅包含以下凭证类型:Vault、Red Hat Ansible Automation Platform 或您创建的任何自定义凭证类型。如需有关凭据的更多信息,请参阅 凭证

    决策环境

    决策环境是用于运行 Ansible 规则手册的容器镜像。

    注意

    在 Event-Driven Ansible 控制器中,您无法自定义决策环境的拉取策略。默认情况下,它遵循 always 策略的行为。每次启动激活时,系统会尝试拉取镜像的最新版本。

    重启策略

    这是决定在运行源插件的容器进程结束后激活应如何重启的策略。

    • 策略:

      1. Always :这会立即重新启动规则手册激活,无论它是否成功结束,并且不会超过 5 次。
      2. Never :当容器进程结束时,这永远不会重启规则手册激活。
      3. 失败时,这会默认在 60 秒后重启规则手册激活,只有在容器进程失败时,才会发生超过 5 次。
    日志级别

    此字段定义您记录的事件中的严重性和类型。

    • levels:

      1. 错误: 包含激活 History 选项卡中显示的错误消息的日志。
      2. info :包含有关规则手册激活的有用信息的日志,如成功或失败、触发的操作名称及其关联的操作事件以及错误。
      3. debug :包含仅在 debug 阶段有用的信息的日志,在生产期间可能只有较少的值。 此日志级别包括 error 和 log level data。
    服务名称
    这定义了 Kubernetes 的服务名称,以便在激活公开端口时配置入站连接。此字段是可选的。
    启用规则手册激活?
    这会自动启用规则手册激活来运行。
    变量
    规则手册的变量采用 JSON 或 YAML 格式。内容等同于通过 ansible-rulebook 命令的 --vars 标志传递的文件。
    选项
    如果您不想在 Rule Audit 中看到您的 事件,请检查 Skip audit 选项。
  5. Create rulebook activation

结果

创建规则手册激活后,会显示 Details 页面。您可以导航到 Event streams 页面,以确认已收到您的事件。

10.8. 从事件流类型重新发送 Webhook 数据

将源替换为您创建的事件流后,您现在可以从事件流重新发送数据,以确保它附加到规则手册激活中。在前面共享的示例中,使用了 GitHub 事件流。以下示例演示了如何在使用 GitHub 事件流时重新发送 Webhook 数据。

流程

  1. 返回到 GitHub Webhook / Manage webhook 页面。
  2. 单击 最近交付选项卡
  3. 单击 省略
  4. 单击 Redeliver。通过发送消息显示 Redeliver payload? 窗口。
  5. 单击 Yes, redeliver this payload
  6. 返回到 Ansible Automation Platform,以检查您的规则审计。

10.9. 检查 Rule Audit 是否有新事件流上的事件

当 Event-Driven Ansible 控制器发送和接收事件时,您可以通过转至 Rule Audit 页面并确认触发的操作,并查看事件流结果。

流程

  1. 登录到 Ansible Automation Platform。
  2. 在导航面板中,选择 Automation DecisionsRule Audit

结果

如果您的规则手册激活从您选择的事件流类型接收事件数据,则 Rule Audit 页面会显示 StatusRulebook 激活 的结果,以及 Last fired date 字段。

第 11 章 Event-Driven Ansible 控制器的性能调整

事件驱动 Ansible 是一个高度可扩展的、灵活的自动化功能。Event-Driven Ansible 控制器提供 Event-Driven Ansible 自动化执行的接口。通过调优您的事件驱动 Ansible 控制器,以优化性能和可伸缩性:

  • 特征您的工作负载
  • 系统级别监控
  • 性能故障排除

11.1. 特征您的工作负载

在 Event-Driven Ansible 控制器中,您的工作负载包括正在接收的规则手册激活和事件的数量。请考虑以下因素来特征您的 Event-Driven Ansible 控制器工作负载:

  1. 同步规则手册激活数量
  2. Event-Driven Ansible 控制器收到的事件数

11.2. 修改每个规则手册激活的默认内存限值

内存用量基于 Event-Driven Ansible 控制器必须处理的事件数。默认情况下,每个规则手册激活容器都有 200 MB 内存限制。例如,对于 4 个 CPU 和 16 GB RAM,一个分配了 200 MB 内存限值的 rulebook 激活容器无法处理每分钟超过 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 重启,重启 Event-Driven Ansible 控制器服务

11.3. Event-Driven Ansible 控制器的系统级别监控

在对工作负载进行定定,以确定您并行运行多少规则手册激活以及您在任意给定点接收的事件数量后,您必须考虑在系统级别监控事件-Driven Ansible 控制器主机。使用系统级监控来查看有关事件驱动 Ansible 的性能的信息,有助于诊断问题或在考虑未来增长容量时提供相应的容量。

系统级监控包括以下信息:

  • 磁盘 I/O
  • RAM 使用率
  • CPU 使用率
  • 网络流量

更高的 CPU、RAM 或磁盘利用率可能会影响 Event-Driven Ansible 控制器的整体性能。例如,任何这些系统资源的高利用率表示 Event-Driven Ansible 控制器运行太多规则手册激活,或者一些单独的规则手册激活正在使用大量资源。在这种情况下,您必须提高系统级资源来支持您的工作负载。

第 12 章 事件过滤器插件

事件有时具有不必要的额外数据,并可能会给规则引擎造成混乱。使用事件过滤器删除该额外数据,以便您可以专注于规则的相关内容。事件过滤器也可以更改数据的格式,以便规则条件可以更好地匹配数据。

事件定义为 python 代码,并以集合的形式分发。默认 eda 集合 有以下过滤器:

Expand
名称描述

json_filter

此过滤器包括和排除事件对象中的键

dashes_to_underscores

此过滤器将有效负载中的所有键中的短划线更改为下划线

ansible.eda.insert_hosts_to_meta

此过滤器用于将主机信息添加到事件中,以便 ansible-rulebook 可以找到并使用它来

ansible.eda.normalize_keys

如果要将非 alpha 数字键更改为下划线,则使用此过滤器

您可以在另一个过滤器后链接事件过滤器,并将更新的数据从一个过滤器发送到下一个过滤器。在定义了源后,事件过滤器在规则手册中定义。当规则手册启动源插件时,它会关联正确的过滤器并在将数据放入队列之前转换数据。

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:

在本例中,数据首先通过 json_filter 传递,然后通过 dashes_to_underscores 过滤器。在事件有效负载中,键只能包含字母、数字和下划线。句点(.)用于访问嵌套密钥。

由于每个事件都应记录过滤器 eda.builtin.insert_meta_info 的起源,它由 ansible-rulebook 自动添加,以添加源名称、键入、和 received_atreceive _at 以 UTC ISO8601 格式存储一个日期时间,并包括微秒。uuid 存储事件的唯一 id。meta 键 用于存储有关事件及其在 aap-server 中正确报告事件所需的元数据。

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

您可以通过在事件源的过滤器列表中将其添加到规则列表中使用此过滤器:

  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

其他资源

第 13 章 event-Driven Ansible 日志记录策略

事件驱动 Ansible 为其资源提供了一个审计日志记录解决方案。每个支持的创建、读取、更新和删除(CRUD)操作都针对规则手册激活、事件流、决策环境、项目和激活记录。其中一些资源支持进一步的操作,如 sync、enable、disable、restart、start 和 stop;对于这些操作,也支持日志记录。这些日志只针对其相关容器的生命周期保留。请参阅每个支持的日志记录操作示例日志。

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
EventStream Logs
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
决策环境
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
项目
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
激活启动/停止
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)

法律通告

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

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部