Event-Driven Ansible 控制器用户指南


Red Hat Ansible Automation Platform 2.4

了解如何配置和使用 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://<eda-server-host>/api/eda/v1/docs

第 2 章 为 Event-Driven Ansible 控制器设置凭证

在启动规则手册时,Event-Driven Ansible 使用凭据进行身份验证。

2.1. 设置凭证

创建用于私有存储库(GitHub 或 GitLab)或私有容器 registry 的凭证。

重要

如果您使用 GitHub 或 GitLab 存储库,请使用 基本的 auth 方法。两个 SCM 服务器都正式支持。您可以使用支持 基本身份验证 的任何 SCM 供应商

流程

  1. 登录 Event-Driven Ansible 控制器仪表板。
  2. 在导航面板中,选择 ResourcesCredentials
  3. Create credential
  4. 插入以下内容:

    名称
    插入名称。
    描述
    此字段是可选的。
    凭证类型
    可用的选项包括 GitHub 个人访问令牌、GitLab 个人访问令牌或容器 registry。
    用户名
    插入用户名。
    令牌

    插入允许您向目的地进行身份验证的令牌。

    注意

    如果使用容器 registry,则 token 字段可以是令牌或密码,具体取决于 registry 供应商。如果使用 Ansible Automation Platform hub registry,请在 token 字段中插入该密码。

  5. Create credential

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

2.2. 凭证列表视图

Credentials 页面中,您可以查看您创建的凭证列表以及凭证的 Type

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

在菜单栏中还有以下选项:

  • 单击 Manage 列,以选择要在列表视图中显示哪些列
  • 点图标在 List 视图Card 视图 之间进行选择。

2.3. 编辑凭证

流程

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

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

2.4. 删除凭证

流程

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

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

您可以一次删除多个凭证,方法是选中每个凭证旁边的复选框,然后点击菜单栏中的 More Actions 图标 apicurio,然后点 Delete selected credentials

第 3 章 项目

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

3.1. 设置新项目

先决条件

  • 您已作为 Content Consumer 登录到 Event-Driven Ansible controller Dashboard。
  • 如有必要,您可以设置一个凭证。如需更多信息,请参阅设置凭证 部分。
  • 您有一个现有的存储库,其中包含了与自动化控制器使用的仓库中包含的 playbook 集成的规则手册。

流程

  1. 登录 Event-Driven Ansible 控制器仪表板。
  2. 在导航面板中,选择 ProjectsCreate project
  3. 插入以下内容:

    名称
    输入项目名称。
    描述
    此字段是可选的。
    SCM 类型
    Git 是可供使用的 SCM 类型。
    SCM URL

    HTTP[S] 存储库的协议地址,如 GitHub 或 GitLab。

    注意

    您无法在创建项目后编辑 SCM URL。

    凭证
    此字段是可选的。这是利用 SCM URL 所需的令牌。
    选项

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

    注意

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

  4. 选择 Create project

您的项目现已创建,可以在 Projects 屏幕中进行管理。

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

3.2. 项目列表视图

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

注意

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

3.3. 编辑项目

流程

  1. Projects 列表视图中,选择所需项目旁边的More Actions icon 图标。
  2. 选择 Edit project
  3. 输入所需的更改,然后选择 Save project
编辑项目

3.4. 删除项目

流程

  1. Projects 列表视图中,选择所需项目旁边的More Actions icon 图标。
  2. 选择 Delete project
  3. 在弹出窗口中,选择 Yes, I confirm that I want to delete this project
  4. 选择 Delete project

第 4 章 决策环境

决策环境是一个容器镜像,用于运行 Ansible 规则手册。它们创建用于通信自动化依赖项的通用语言,并提供构建和分发自动化环境的标准方法。默认决策环境在 Ansible-Rulebook 中找到。

要创建自己的决策环境,请参阅 在 Ansible Automation Platform 中为 Event-Driven Ansible 构建自定义决策环境

4.1. 设置新的决策环境

以下步骤描述了如何将决策环境导入到您的 Event-Driven Ansible 控制器仪表板中。

先决条件

  • 您已作为 Content Consumer 登录到 Event-Driven Ansible controller Dashboard。
  • 如有必要,您可以设置一个凭证。如需更多信息,请参阅设置凭证 部分。
  • 您已将决策环境镜像推送到镜像存储库,或者您选择使用 registry.redhat.io 提供的镜像不受支持

流程

  1. 进入到 Event-Driven Ansible 控制器仪表板。
  2. 从导航面板中,选择 Decision Environments
  3. 插入以下内容:

    名称
    插入名称。
    描述
    此字段是可选的。
    Image
    这是完整的镜像位置,包括容器 registry表、镜像名称和版本标签。
    凭证
    此字段是可选的。这是利用决策环境镜像所需的令牌。
  4. 选择 Create decision environment

您的决策环境现已创建,可以在决策环境屏幕上进行管理。

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

4.2. 为 Ansible Automation Platform 中的 Event-Driven Ansible 构建自定义决策环境

如果您需要自定义决策环境,以提供默认决策环境中不可用的自定义维护或第三方事件源插件,请使用以下说明。

先决条件

  • Ansible Automation Platform > = 2.4
  • Event-Driven Ansible
  • Ansible Builder > = 3.0

流程

  • 添加 de-supported 决策环境。该镜像由红帽提供的基础镜像构建,名为 de-minimal

    注意

    红帽建议在 Ansible Builder 中使用 de-minimal 作为基础镜像来构建自定义决策环境。

以下是使用 de-minimal 作为基础镜像的 Ansible Builder 定义文件示例,以使用 ansible.eda 集合构建自定义决策环境:

version: 3

images:
  base_image:
    name: 'registry.redhat.io/ansible-automation-platform-24/de-minimal-rhel8: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-24/de-minimal-rhel8: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 章 设置自动化控制器令牌

自动化控制器必须包含基于带有特定 playbook 的存储库的项目,以便与 Event-Driven Ansible 规则手册一起使用。自动化控制器还必须根据该项目中的 playbook 设置对应的作业模板。

5.1. 设置令牌以向自动化控制器进行身份验证

先决条件

  • 您已作为 Content Consumer 登录到 Event-Driven Ansible controller Dashboard。
  • 您已创建了用户。
  • 您可以登录到 Event-Driven Ansible 控制器仪表板,或者作为机构中的用户添加。

流程

  1. 进入 Event-Driven Ansible 控制器仪表板。
  2. 在顶部导航面板中选择您的个人资料。
  3. 进入用户详情
  4. 选择 Controller TokensCreate controller 令牌
  5. 插入以下内容:

    名称
    插入名称。
    描述
    此字段是可选的。
    令牌

    在自动化控制器中创建令牌。有关创建令牌的更多信息,请参阅自动化控制器用户指南中的 用户 - Tokens 部分。

    注意

    您的令牌必须处于 write-scope 状态,并且如果您被分配了的用户,则必须有执行任务和工作流模板的权限。

  6. 选择 Create controller token

保存新令牌后,您将进入 Controller Tokens 选项卡,您可以在其中删除令牌。

第 6 章 规则手册激活

规则手册激活是由执行特定规则手册的决策环境定义的后台运行的进程。

6.1. 设置规则手册激活

先决条件

  • 您已作为 Content Consumer 登录到 Event-Driven Ansible controller Dashboard。
  • 您已设置了一个项目。
  • 您已设置了决策环境。
  • 您已设置了自动化控制器令牌。

流程

  1. 进入到 Event-Driven Ansible 控制器仪表板。
  2. 在导航面板中,选择 Rulebook Activations
  3. 插入以下内容:

    名称
    插入名称。
    描述
    此字段是可选的。
    项目
    项目是规则手册的逻辑集合。
    规则手册
    规则手册会根据所选项目显示。
    决策环境

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

    注意

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

    重启策略

    这是一个策略,用于决定何时重启规则手册。

    • 策略:

      1. Always :当规则手册完成时重启
      2. Never :在规则手册完成后重启一个规则手册
      3. On failure:只在失败时重启
    启用规则手册激活?
    这会自动启用规则手册激活来运行。
    变量
    规则手册的变量采用 JSON/YAML 格式。内容等同于通过 ansible-rulebook 命令的 --vars 标志传递的文件。
  4. Create rulebook 激活

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

保存新的规则手册激活后,会显示规则手册激活的详细信息页面。从 there 或 Rulebook Activations 列表视图中,您可以编辑或删除它。

注意

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

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

Rulebook Activations 页中,您可以查看您创建的规则手册激活,以及 激活状态, 与规则手册关联的规则数量, Fire 数量, 和 Restart 数量

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

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

Rulebook activation][width=25px

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

6.2.1. 查看激活输出

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

流程

  1. 选择 History 选项卡来访问所有激活实例的列表。激活实例代表激活的单个执行。
  2. 然后,在问题中选择激活实例,这会显示由该特定执行生成的输出
规则手册激活历史记录

要查看处于和触发某个操作的事件,您可以使用 Event-Driven Ansible 控制器仪表板中的 Rule Audit 部分。

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

  1. 选择行级的切换,以启用或禁用您选择的规则手册。
  2. 在弹出窗口中,选择 Yes, I confirm that I want to enable/disable these X rulebook activations
  3. 选择 Enable/Disable rulebook activation

6.4. 重启规则手册激活

注意

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

  1. 选择 Rulebook Activation enabled/disabled 切换开关旁边的 More Actions 图标
  2. 选择 Restart rulebook 激活
  3. 在弹出窗口中,选择 Yes, I confirm that I want to restart these X rulebook activations
  4. 选择 Restart rulebook 激活

6.5. 删除规则手册激活

  1. 选择 Rulebook Activation enabled/disabled 切换开关旁的 More Actions 图标
  2. 选择 Create rulebook 激活
  3. 在弹出窗口中,选择 Yes, I confirm that I want to delete these X rulebook activations
  4. 选择 Delete rulebook 激活

6.6. 激活 Webhook 规则手册

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

先决条件

  • 您已在 Event-Driven Ansible 控制器仪表板中创建了规则手册激活。
注意

以下是带有给定 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 进行测试

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

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

6.7. 使用 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 '{}'

第 7 章 规则审计

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

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

7.1. 查看规则审计详情

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

规则审计列表视图

流程

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

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

7.2. 查看规则审计事件

流程

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

7.3. 查看规则审计操作

流程

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

您可以在此处查看已执行的操作。有些操作链接到自动化控制器,您可以在其中查看输出。

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

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

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

8.1. 特征您的工作负载

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

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

8.1.1. 修改同时规则手册激活的数量

默认情况下,Event-Driven Ansible 控制器允许同时运行 12 个规则手册激活。如果创建超过 12 个规则手册激活,则预期的行为是后续规则手册激活等待等待,直到有可用的规则手册激活 worker。在这种情况下,规则手册激活状态将显示为"pending",即使您的 Event-Driven Ansible 控制器实例上有足够的可用内存和 CPU。要更改此行为,您必须更改运行规则手册激活的默认最大数量。

注意: EDA_MAX_RUNNING_ACTIVATIONS 的值不会随着实例大小的变化而改变,因此需要手动调整。

8.1.1.1. 在 Event-Driven Ansible 控制器安装过程中修改同时规则手册激活的数量

默认情况下,Event-Driven Ansible 控制器允许同时运行 12 个激活。您可以按照以下流程在安装过程中修改此默认值:

流程

为虚拟机安装程序提供变量:

  1. 导航到设置清单文件。
  2. 在 [all:vars] 部分添加 automationedacontroller_max_running_activations。例如: automationedacontroller_max_running_activations=16
  3. 运行设置。
8.1.1.2. 在 Event-Driven Ansible 控制器安装后修改同时规则手册激活的数量

默认情况下,Event-Driven Ansible 控制器允许同时运行 12 个激活。您可以按照以下流程在安装后修改此默认值:

流程

  1. 导航到 /etc/ansible-automation-platform/eda 中的环境文件。
  2. 选择您需要的最大运行激活数。例如,EDA_MAX_RUNNING_ACTIVATIONS = 16
  3. 使用以下命令重启 EDA 服务: systemctl restart automation-eda-controller.target

Resources

有关规则手册激活的更多信息,请参阅 规则手册激活

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

内存用量基于 Event-Driven Ansible 控制器必须处理的事件数。每个规则手册激活容器都有 200MB 内存限制。例如,如果有 4 个 CPU 和 16GB RAM,一个分配了 200MB 内存限值的 rulebook 激活容器每分钟无法处理超过 150,000 个事件。如果并行运行规则手册激活的数量较高,则每个规则手册激活的最大事件数可以减少。如果速度非常高,则容器可能会耗尽处理事件的内存。这将终止容器,您的规则手册激活将失败,状态码为 137。

要解决这个问题,您可以增加分配给规则手册激活的内存量,以便使用以下方法之一处理大量事件:

  • 在安装过程中修改每个规则手册激活的默认内存限值
  • 安装后修改每个规则手册激活的默认内存限值
8.1.2.1. 在安装过程中修改每个规则手册激活的默认内存限值

默认情况下,每个规则手册激活容器都有 200MB 内存限制。您可以按照以下流程在安装过程中修改此默认值:

流程

  1. 导航到设置清单文件。
  2. 在 [all:vars] 部分添加 automationedacontroller_podman_mem_limit。例如,Automationedacontroller_podman_mem_limit='400m'
  3. 运行设置。
8.1.2.2. 安装后修改每个规则手册激活的默认内存限值

默认情况下,每个规则手册激活容器都有 200MB 内存限制。您可以按照以下流程在安装后修改此默认值:

流程

  1. 导航到 /etc/ansible-automation-platform/eda 中的环境文件。
  2. 修改默认容器内存限值。例如,EDA_PODMAN_MEM_LIMIT = '300m'
  3. 使用 systemctl restart automation-eda-controller.target 重启 Event-Driven Ansible 控制器服务。

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

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

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

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

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

8.3. 对 Event-Driven Ansible 控制器的性能故障排除

根据 Event-Driven Ansible 控制器中的默认参数,您可能会遇到完成工作负载面临的挑战。下面的部分提供了这些场景和故障排除指南的描述。

  • 我激活状态显示为"运行",但不处理事件。

    • 确保您在 rulebook 激活中使用正确的事件源。如果您期望的事件来自规则手册之外的源,Event-Driven Ansible 控制器不会处理该事件。
  • 我激活状态显示为"运行",Event-Driven Ansible 控制器也收到事件,但不会发生任何操作。

    • 确保您设置了与事件匹配的正确条件,并在规则手册激活中执行操作。
  • 我的激活会在无限循环中保持重启。

    • 默认情况下,规则手册激活的重置策略被设置为 "on failure"。使用以下步骤更改 estart 策略:

      1. 导航到 Rulebook Activation 屏幕。
      2. 点 Restart Policy 下拉菜单。
      3. 选择适当的值:"On Failure", "Always", "Never"。

法律通告

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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.