3.13. 创建并运行规则手册激活


在 Event-Driven Ansible 中,规则手册激活是在后台运行的进程,由执行特定规则手册的决策环境定义。

3.13.1. 设置规则手册激活

先决条件

  • 您已设置了一个项目。
  • 您已设置了决策环境。

流程

  1. 在导航面板中,选择 Automation Decisions Rulebook Activations
  2. Create rulebook activation
  3. 输入以下信息:

    • 名称 :插入名称。
    • Description: 此字段是可选的。
    • Organization: 此字段是可选的。
    • Project: 此字段是可选的。
    • 规则手册 :根据您选择的项目显示 Rulebooks。
    • 凭证 :为这个规则手册激活选择 0 个或更多凭证。此字段是可选的。

      注意

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

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

      注意

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

    • 重启策略 :这是决定在容器进程运行源插件后如何重启 的策略。从以下选项中选择:

      • Always :这会立即重新启动规则手册激活,无论它是否成功结束,并且不会超过 5 次。
      • Never :当容器进程结束时,这永远不会重启规则手册激活。
      • 失败时,这会默认在 60 秒后重启规则手册激活,只有在容器进程失败时,才会发生超过 5 次。
    • 日志级别 :此字段定义日志记录事件中的内容的严重性和类型。从以下选项之一中选择:

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

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

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

注意

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

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

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

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

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

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

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

流程

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

3.13.3. 重启规则手册激活

注意

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

流程

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

3.13.4. 删除规则手册激活

流程

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

3.13.5. 激活 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
Copy to Clipboard Toggle word wrap

流程

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

    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
    注意

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat