Ansible 界面:Semaphore UI 对比 Ansible Automation Platform(AAP)

Denis GukovSemaphore UI 创始人兼 CTO
阅读约需17分钟

Semaphore UI 和 Red Hat Ansible Automation Platform(AAP)帮助团队运行、调度和共享 Ansible 自动化。AAP 的 automation controller 以前称为 Ansible Tower。本比较探讨两个平台如何处理日常自动化、运营所需条件,以及何时 Semaphore UI 的功能、部署方式和定价更适合团队。比较范围为 AAP 2.6 和 Semaphore UI 2.20.0。

与 AI 讨论本文

概述

当 Ansible 从工程师的笔记本进入日常运维时,团队需要可重复的作业、共享凭据、受控访问以及变更记录。有些团队还需要受支持的内容供应链,以及在多个站点分布式执行的方式。

Red Hat Ansible Automation Platform 面向这种更广泛的平台需求。Automation controller 运行作业和工作流,automation hub 分发内容,Event-Driven Ansible 响应事件,automation mesh 将执行能力部署到受管基础设施附近。AAP 是具有明确支持生命周期的商业产品,与其开源上游 AWX 不同。

Semaphore UI 在项目中汇集代码仓库、资产清单、凭据和变量。工程师准备部署、补丁更新或证书续期作业,再通过启动表单、调度和工作流共享。直接运行的模板还支持 Terraform/OpenTofu、Terragrunt、Bash、PowerShell 和 Python。团队可以在现有基础设施上构建这一运维服务,并随着访问、执行和支持需求增长添加 Pro 或 Enterprise 功能。

Semaphore UI 项目中用于多种自动化工具的任务模板。
Semaphore UI. 预配置的 Ansible、基础设施即代码和命令行操作共享项目任务列表。
Red Hat Ansible Automation Platform 2.6 界面。
Ansible Automation Platform. Ansible Automation Platform 2.6 界面。图为 Red Hat 官方产品示意图。 来源

快速对比

两款平台都为 Ansible 操作提供共享界面。比较日常工作时,也应考虑 AAP 更广范围内提供的内容、事件处理和分布式执行服务。

Ansible Automation Platform 与 Semaphore UI:主要特点
对比项 Semaphore UI Ansible Automation Platform
自动化工具 Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell, Python Ansible,Terraform 集成及通过 playbook 调用的其他工具
安装方式 二进制文件、原生安装包、Docker、Kubernetes RHEL 上的 Podman 容器、OpenShift Operator、2.6 中的 RPM 迁移路径
任务执行 在服务器本机或 Runner 上 通过 automation mesh 连接的执行服务器或 Kubernetes 作业 Pod
工作流 支持,可跨自动化工具构建可视化工作流 支持,可视化 Ansible 工作流,支持复用子工作流
执行计划 Cron 表达式、单次执行 单次与周期性计划
资产清单管理 静态与 Git 定义,运行时动态发现 受管主机与组记录、来源同步和存储的 facts
访问控制 项目角色、Enterprise 版自定义角色与模板权限 组织、团队、自定义角色与独立资源权限
凭据 Key Store、SSH 密钥、密码、外部密钥库集成 凭据对象、SSH 密钥、密码、外部密钥库集成
内容分发 Git 代码仓库与外部 Ansible collection 注册中心 Private automation hub 与 Red Hat 内容生态
商业模式 MIT 许可的 Community 版,商业 Pro 版与 Enterprise 版 Red Hat 商业订阅与产品生命周期

团队可以使用 Semaphore UI 的模板、可复用项目资源和工作流,覆盖大量共享部署、维护与资源预配工作。直接运行的 IaC 和语言专用模板将同一服务扩展到 Ansible 之外。AAP 增加更广泛的内容生态、受管 Ansible 资源和平台服务。如果不需要这些附加服务,Semaphore UI 能将投入更集中于团队实际使用的自动化。

功能对比

Ansible 操作不仅依赖 playbook 执行,也依赖主机信息、凭据和权限。随着自动化在更多环境中共享,内容分发和事件处理也成为需要考虑的事项。

安装与配置

安装方式应与团队需要运营的服务相匹配。AAP 支持 RHEL 和 OpenShift 部署,Semaphore UI 还提供独立二进制文件和原生软件包。

支持部分支持不支持
安装与配置: Ansible Automation Platform 与 Semaphore UI
对比项 Semaphore UI Ansible Automation Platform
独立二进制程序 支持 不支持
原生 Linux 软件包 支持DEB / RPM 支持已弃用的 RHEL 9 RPM 迁移路径
原生 Windows 服务端 支持Ansible 需要 WSL、容器或 Linux runner 不支持RHEL 与 OpenShift 部署
无需 Kubernetes 的部署 支持 支持
Kubernetes 部署 支持Helm Chart 支持Red Hat OpenShift Operator
高可用性 支持Enterprise 支持经测试的企业拓扑

AAP 2.6 支持在 RHEL 上采用 Podman 容器化安装,以及在 OpenShift 上通过 Operator 安装。较旧的 RPM 安装程序在 2.6 中仍支持用于 RHEL 9 迁移,但已被弃用。Red Hat 为这些部署提供支持拓扑和产品生命周期文档。并非所有 AAP 安装都需要 Kubernetes。

Semaphore UI 可通过二进制文件或原生软件包在现有主机上运行,也可通过 Docker 或 Kubernetes 部署。为 Ansible 引入共享界面的团队,可以选择传统服务器安装,并复用已经维护的代码仓库和基础设施。当自动化服务需要冗余应用实例时,Enterprise 提供高可用性。Semaphore UI 服务器也可原生运行于 Windows,而 Ansible 执行需要 WSL、容器或 Linux 运行器。

Semaphore UI 可以从现有服务器共享补丁更新和部署作业。AAP 的部署拓扑取决于所选组件,以及团队需要维护的执行容量。

自动化工具

平台可以通过 Ansible 执行某种工具,但不一定为该工具提供独立模板和生命周期。

支持部分支持不支持
自动化工具: Ansible Automation Platform 与 Semaphore UI
对比项 Semaphore UI Ansible Automation Platform
Ansible playbook 支持 支持
Terraform/OpenTofu 支持原生任务模板 支持通过 Ansible playbook 与集成
Terragrunt 支持原生任务模板 支持通过 Ansible playbook
Bash 支持原生任务模板 支持通过 Ansible playbook
PowerShell 支持原生任务模板 支持通过 Ansible playbook
Python 支持原生任务模板 支持通过 Ansible playbook
无需 playbook 的 IaC 模板 支持原生 Terraform/OpenTofu 与 Terragrunt 模板 不支持由 Ansible Job Template 调用 IaC 工具
内置 Terraform state backend 支持ProHTTP backend、版本历史与 state 界面 不支持使用 Terraform 服务或外部 backend

AAP 使用 Ansible playbook 和执行环境,即包含 Ansible 运行时及所需依赖的容器镜像。其 Terraform 集成包括用于协调 Terraform 服务的 collection,playbook 也能调用其他命令行工具。如果 Ansible 已经编排整个流程,这是一种一致的模型。

Semaphore UI 同样围绕实用的 Ansible 操作构建,同时为 Terraform/OpenTofu、Terragrunt、Bash、PowerShell 和 Python 提供各自的 Task Template。对于 Terraform/OpenTofu,工程师在界面中选择代码仓库、配置目录、workspace 和 Variable Group。IaC 工具直接执行,无需编写仅用于调用它的 Ansible playbook。因此,Ansible 部署、Terraform 资源预配作业和 Python 验证任务可以共享项目,同时保留各自的运行配置。

例如,临时测试环境可能需要先创建基础设施,再配置应用并检查就绪状态。Semaphore UI 保留各步骤已有的工具,并通过工作流连接起来。对于自动化分布在多个代码仓库和语言中、但仍希望在一个地方启动和检查操作的团队,这种方式很有用。

为开发、预发布和生产环境配置独立的 state/backend 地址或受支持的 workspace。workspace 支持取决于所选 backend。Semaphore UI Pro 可通过内置 HTTP backend 自行托管 state,并在界面中提供 state 版本历史与管理。创建临时环境的团队,可以将资源预配模板、其 state 和后续 Ansible 配置保留在同一服务内。AAP 文档中的 Terraform 集成使用 Terraform 服务或配置的外部 backend 存储 state。若团队已有外部 backend,Semaphore UI 同样可以继续使用。

如果流程必须审批并应用确切的已保存 Terraform plan,需要显式配置 plan 存储和复用。Semaphore UI 默认分别运行 plan 和 apply,默认命令使用 -lock=false,除非另行覆盖。提供 state backend 不会改变这些任务命令设置。

模板与执行计划

两款产品都会保存操作配置,方便同事重复启动。它们使用的名称不同:AAP 中为 Job Template,Semaphore UI 中为 Task Template。

支持部分支持不支持
模板与执行计划: Ansible Automation Platform 与 Semaphore UI
对比项 Semaphore UI Ansible Automation Platform
保存任务配置 支持 支持
输入表单(运行参数) 支持 支持
跨作业共享配置 支持分配给模板的命名 Variable Groups 支持资产清单变量与 Git 中的文件
启动时指定仓库分支 支持 支持
计划执行 支持Cron 表达式和单次执行 支持单次与周期性计划

AAP Job Template 保存操作的项目、playbook、资产清单、凭据和执行环境。启动模板会创建作业。输入表单收集该次启动启用的输入,让操作人员无需重新配置即可执行预先准备的流程。

Semaphore UI 使用 Task Template,在 Ansible 和其他自动化工具中实现相同的可复用启动模式。Ansible 模板选择代码仓库、playbook、资产清单和凭据。命名的 Variable Groups 保存跨模板复用的配置,输入表单字段收集单次运行所需的变量值。AAP 可以通过资产清单和 Git 中的文件复用变量。

以向支持团队同事共享服务重启流程为例,工程师准备 playbook 和环境配置,再在启动表单中要求填写服务名称与变更编号。同事选择操作、提供这些输入,就能跟踪状态和输出。独立模板可以使用同一项目资源,提供部署、备份或证书续期操作。

两款产品也都能调度保存的模板。AAP 提供单次与周期性调度,Semaphore UI 支持 cron 表达式和携带已配置输入的单次运行。手动维护窗口前使用的备份,也可按计划在夜间执行。团队因此能够复用操作流程,而无需分别维护 cron 命令和 Web 启动配置。

资产清单

两款平台都能使用基于 Git 的资产清单和外部发现源。主要区别在于平台如何处理这些信息:AAP 通过资产清单同步维护主机和组记录,Semaphore UI 则在任务运行时使用资产清单定义和发现插件。

支持部分支持不支持
资产清单: Ansible Automation Platform 与 Semaphore UI
对比项 Semaphore UI Ansible Automation Platform
Git 资产清单 支持 支持
动态资产清单 支持 支持
清单刷新 部分支持执行时发现主机 支持定期更新和启动时更新
计算生成的清单组 支持Ansible constructed 插件 支持托管构建式清单
托管事实缓存 不支持需单独配置 Ansible 缓存 支持可选的主机 facts 存储
编辑主机与组 部分支持编辑 INI/YAML 定义 支持针对单个主机和组的管理控件

AAP 将资产清单来源同步为受管主机和组,并通过存储的 facts 与 constructed inventory 支持更复杂的 Ansible 操作。操作人员可以在启动作业的同一平台内检查和管理单台主机信息。如果维护这些记录、组合资产清单来源是日常工作的一部分,这就很有价值。AAP 可定时或在启动前刷新资产清单来源,并可选择将主机 facts 保留在受管缓存中。

Semaphore UI 复用静态或 Git 资产清单定义,以及 Ansible 发现插件,包括 NetBox 和云 API 插件。操作人员可以在界面中编辑 INI/YAML 定义,也可以继续以 Git 和外部发现作为主机信息来源。模板在操作执行时选择所需的资产清单,动态发现在执行期间进行。Ansible 自身配置的 fact 缓存仍可使用,但 Semaphore UI 不提供由 controller 管理的 fact 缓存。

对于已经在自动化界面之外维护基础设施的团队,这避免了仅为共享作业而引入第二套主机管理流程。同一资产清单可以服务于补丁更新、证书检查和部署,各操作使用独立模板和输入。如果操作人员需要受管主机视图,而不只是用于执行的资产清单,AAP 的同步主机和组视图仍有价值。

密钥管理

凭据提供预先配置的作业所需的 SSH 密钥、密码和其他认证信息。两款平台都存储凭据,也可从外部密钥库获取变量值。

支持部分支持不支持
密钥管理: Ansible Automation Platform 与 Semaphore UI
对比项 Semaphore UI Ansible Automation Platform
凭据存储 支持 支持
HashiCorp Vault 支持Pro 支持
Azure Key Vault 支持Enterprise 支持
AWS Secrets Manager 支持Enterprise 支持
内置 OpenBao 查询 支持Pro 不支持没有专用连接器
Devolutions Server 查询 支持Enterprise 支持Ansible collection
CyberArk 查询 支持EnterprisePVWA REST API 支持CCP 与 Conjur
内置 Centrify Vault 查询 不支持 支持
内置 Thycotic 查询 不支持 支持Secret Server 与 DevOps Secrets Vault

两款产品都将凭据引用与预先配置的操作一起保存。工程师可以一次配置代码仓库访问、主机凭据和其他机密信息,再跨部署与维护作业复用。启动操作的同事无需每次重新提供这些凭据。

AAP 支持凭据对象和外部机密信息查询,包括 HashiCorp Vault、AWS Secrets Manager、Azure 和 CyberArk 集成。Semaphore UI 提供项目 Key Store,并在 Pro 中连接 HashiCorp Vault 或 OpenBao。Enterprise 增加 AWS Secrets Manager、Azure Key Vault、Devolutions Server,以及通过 PVWA API 连接的 CyberArk。AAP 可在 playbook 中使用 Devolutions Ansible collection,前提是在执行环境中安装该 collection。其内置凭据连接器没有专用 OpenBao 查询。AAP 还提供 Centrify Vault 和 Thycotic Secret Server 或 DevOps Secrets Vault 连接器,而 Semaphore UI 没有将它们作为内置存储提供。当平台缺少连接器时,可以用 Ansible 查询 collection 或命令为操作获取机密信息,并在自动化代码中维护集成。因此,团队可根据现有密钥库,以及希望直接在平台中配置的连接进行选择。

执行

保存的模板描述运行内容。执行配置决定由哪台服务器运行,以及由哪个运行环境提供依赖。

支持部分支持不支持
执行: Ansible Automation Platform 与 Semaphore UI
对比项 Semaphore UI Ansible Automation Platform
远程执行 支持Runner 支持Automation mesh 执行节点
执行路由 支持Pro模板或资产清单中的 runner 标签 支持分配给资源的实例组
Ansible role 与 collection 支持从 requirements.yml 安装 支持在项目同步时安装
容器化任务 支持ProDocker 执行器 支持Ansible 执行环境镜像
Kubernetes 作业 Pod 支持Enterprise 支持容器组
并发控制 支持模板、项目和实例级限制 支持并发作业及实例组容量

AAP 在包含 Ansible 和 playbook 依赖的执行环境中运行作业。执行节点可在控制服务以外运行任务。Automation mesh 连接这些节点,并能使用中间跳转节点访问远程网络。这支持通过明确的执行镜像和网络路径管理分布式 Ansible 基础设施。

Semaphore UI 可以在自身服务器或靠近目标系统的运行器上执行自动化。例如,私有网络中的运行器可以针对本地主机运行 Ansible 维护作业,而共享界面保留在其他位置。Community 提供全局运行器,Pro 增加分配给项目的运行器,以及适用于不同执行环境的基于标签的路由。

团队可以从直接执行起步,再按工作负载需要添加独立机器或逐任务容器。Pro 提供 Docker 任务执行,Enterprise 增加 Kubernetes 任务执行。这样,运行现有 playbook 的服务可以从单台主机逐步过渡到分离执行,而无需部署 automation mesh。应用服务器容器化与逐任务容器化是两个独立选择。

工作流

工作流将保存的模板连接成更大的流程,例如预配服务器、配置服务器并检查结果。

支持部分支持不支持
工作流: Ansible Automation Platform 与 Semaphore UI
对比项 Semaphore UI Ansible Automation Platform
可视化工作流编辑器 支持 支持
混合工具工作流步骤 支持原生 Ansible、IaC 与语言模板 支持由 Ansible Job Template 调用其他工具
多个起始节点 不支持 支持
分支汇合 支持 支持
成功/失败分支 支持 支持
审批步骤 支持 支持
独立审批权限 不支持 支持
将工作流作为步骤 不支持 支持
工作流值传递 支持 支持

AAP Workflow Job Template 可以连接 Job Template、项目更新、资产清单更新和其他工作流。审批步骤暂停运行,Ansible set_stats 变量值可以传递到后续作业。如果多个流程共享完整的步骤序列,嵌入工作流可让这段序列只需维护一次。

Semaphore UI 工作流直接连接 Ansible、Terraform/OpenTofu、Terragrunt、Bash、PowerShell 和 Python Task Template,支持成功与失败分支、审批和延时。资源预配工作流可以使用 Terraform/OpenTofu 创建基础设施、Ansible 配置主机,再通过 Python 检查就绪状态。维护工作流可以先备份、再更新和验证,复用的模板也可由同事单独启动。AAP 可通过 Ansible Job Template 和 Terraform 集成编排同样的流程。区别在于,每种工具的运行配置是放在各自模板中,还是放在 Ansible 作业背后的 playbook 和集成中。

Semaphore UI 2.20 将 Ansible set_stats 变量值、Terraform/OpenTofu/Terragrunt 输出,以及 Bash、PowerShell 或 Python 生成的 JSON 传入后续任务输入。因此,资源预配返回的地址或资源标识可以成为下一操作的输入。AAP 在 Ansible 作业之间传递 set_stats 变量值。两者都提供实用的变量值传递,区别在于结果如何生成和使用。接收模板声明输入,其 playbook 或资产清单配置再使用该输入定位新主机。

AAP 为工作流审批提供可单独分配的 Approve 权限。Semaphore UI 2.20 的审批与运行项目任务的权限关联。独立审批者角色已宣布计划用于 2.21.0。当审批职责需要独立权限时,这一点很重要。

资源预配与配置工作流可以通过服务器或远程运行器上的本地执行器,在 Semaphore UI 任务间传递收集的变量值。Docker 和 Kubernetes 执行器不收集这些输出,因此依赖这些值的工作流需要采用其他执行安排。各任务模板仍可跨工作流复用。如果多个流程需要复用完整的多步骤工作流,AAP 的嵌套工作流可避免分别维护这些序列。在任一平台中,保存的 Terraform plan 等文件都需要可访问存储,或在作业间显式传输。

访问控制

委派一项操作,与允许操作人员任意组合资产清单和凭据,是不同的访问需求。

支持部分支持不支持
访问控制: Ansible Automation Platform 与 Semaphore UI
对比项 Semaphore UI Ansible Automation Platform
基于角色的访问控制 支持项目角色 支持组织、团队和资源角色
LDAP 认证 支持Pro 支持
OIDC 单点登录 支持Pro 支持
SAML 单点登录 不支持支持 OIDC 支持
自定义角色 支持Enterprise 支持
资产清单与凭据的独立权限 不支持资源访问遵循项目角色 支持
模板级执行权限 支持Enterprise 支持

AAP 为单个资源授予访问权限,并支持自定义角色。操作人员可独立于作业模板获得使用特定资产清单和凭据的权限。这适合日常工作需要组合已授权 Ansible 资源、构建新操作的团队。

Semaphore UI 围绕项目和预先配置的操作组织访问。Community 项目角色已支持将维护自动化的工程师与运行自动化的同事区分开。项目可以汇集团队的部署、备份和维护模板,以及这些模板已配置的资源。

需要将访问限制在特定操作时,Enterprise 增加自定义角色与模板级执行权限。例如,支持人员可获得服务重启模板,而部署仍由其他角色负责。资产清单、凭据和允许的启动覆盖项都属于预先配置的内容。这是一种专注于委派操作的模型,而 AAP 为底层资源提供独立权限。

Semaphore UI 模板权限,显示获准运行任务的 Production maintenance operator 角色。
Semaphore UI. Enterprise 模板权限将预先配置的操作委派给特定角色。
Ansible Automation Platform 2.6 中针对资产清单、凭据和作业模板的团队角色。
Ansible Automation Platform. 角色分别分配给单个资产清单、凭据和作业模板。图为 Red Hat 官方示例。 来源

两者都支持 LDAP 集成。Semaphore UI Pro 还提供 OIDC 登录,AAP 则支持 OIDC、SAML 和其他统一配置的身份提供方。Semaphore UI 不提供内置 SAML 集成。Semaphore UI Pro 还为本地账户增加 TOTP 双因素认证。

日志与审计

支持部分支持不支持
日志与审计: Ansible Automation Platform 与 Semaphore UI
对比项 Semaphore UI Ansible Automation Platform
运行历史与日志 支持 支持
Ansible 主机与任务结果 支持Pro 支持
管理审计记录 支持登录与记录的操作 支持资源活动流
外部日志转发 支持Pro通过 Syslog 或 HEC 发送审计事件 支持Controller 日志集成

当同事需要了解部署或维护作业是否完成时,首先关注的是操作结果。两款产品都保存执行输出和历史。Semaphore UI 记录任务状态、代码仓库版本和启动详情,Pro 还提供 Ansible 主机摘要,显示每台服务器的失败任务。补丁更新或证书作业完成后,操作人员可以识别受影响主机,并检查对应输出。

管理审计的用途不同。AAP 的活动流记录平台资源变更,日志集成转发作业和系统事件。Semaphore UI 提供管理员审计日志,记录登录、权限变更和其他已记录操作。Pro 增加筛选、文件导出,以及 TLS Syslog 或 Splunk HEC 转发,使这些事件能够纳入组织的安全调查与 SIEM 记录。

集成

API 和 Webhook 可让现有 CI 流水线或事件处理器启动预先配置的操作。AAP 还包含用于内容分发和事件驱动自动化的独立服务。

支持部分支持不支持
集成: Ansible Automation Platform 与 Semaphore UI
对比项 Semaphore UI Ansible Automation Platform
REST API 支持 支持
作业 webhook 支持通用端点、匹配器与变量值提取 支持GitHub 和 GitLab webhook
作业通知 支持 支持
事件处理规则 部分支持Webhook 匹配器与变量值提取 支持Event-Driven Ansible rulebook
私有 Ansible collection 注册中心 不支持使用外部 collection 注册中心 支持Private automation hub

AAP 的 automation hub 分发 collection 和执行镜像,并可访问 Red Hat Certified 与 validated 内容。Event-Driven Ansible 通过 rulebook 评估事件并触发自动化。这些是面向组织范围的自动化管理与启动的平台服务,其范围超出针对已保存作业的入站 Webhook。

Semaphore UI 通过 REST API,以及带有匹配和输入提取功能的 Webhook 集成,与现有 CI、监控和请求系统配合。构建流水线可以发布版本并请求预先配置的部署,事件处理器也可以请求诊断操作。Semaphore UI 保存该操作的资产清单、凭据和执行记录。当外围流程需要等待完成时,调用方负责认证并检查任务结果。

Semaphore UI 与 automation controller 都为预先配置的作业提供启动表单。AAP 还提供独立部署、基于 Red Hat Developer Hub 构建的 Ansible automation portal,包含自助目录、模板同步和自定义集成。用于该 portal 的 Developer Hub 使用权限包含在 AAP 订阅中。如果团队只需要共享作业执行,而不需要此类目录,Semaphore UI 提供面向 Ansible 与其他自动化工具的专用界面。

Semaphore UI 启动表单,包含所选服务、服务状态、环境与变更编号。
Semaphore UI. 预先配置的操作直接在启动表单中收集服务与环境选项。
Ansible Automation Platform 2.6 自助 portal,在启动前检查资产清单、凭据和服务输入表单。
Ansible Automation Platform. 自助 portal 引导请求完成输入和复核步骤。图为 Red Hat 官方示例。 来源

AI 辅助自动化

支持部分支持不支持
AI 辅助自动化: Ansible Automation Platform 与 Semaphore UI
对比项 Semaphore UI Ansible Automation Platform
MCP 接入 支持社区连接器 支持官方 AAP MCP 服务器

AAP 提供官方 MCP 服务器,向兼容助手开放平台操作。它可随平台部署,也可作为独立容器部署。AAP 还在界面中提供可选的 automation intelligent assistant,连接已配置的模型提供方。这将其一体化平台方式扩展到 AI 辅助操作。

Semaphore UI 已有面向其 API 的社区 MCP 连接器,并宣布计划在 2.21.0 中为 Pro 提供官方 MCP 支持。Claude Code 或 Codex 也可参考公开文档、源代码和 API 定义,帮助准备模板、编写集成代码,或根据提供的配置与输出调查失败运行。团队可以在现有自动化服务旁使用这些辅助能力,无需采用范围更广的平台。

许可与支持

AAP 是企业平台订阅,而 Semaphore UI 提供免费自动化服务及同一产品系列中的商业版本。如果需求是共享作业执行,而不是更广泛的 Red Hat 生态,Semaphore UI 可以明显更简单、更经济。

不同的采购范围

AAP 订阅结合平台功能、Red Hat 支持、内容和产品生命周期。当组织需要在其自动化体系中使用整个生态时,其价值会更大。AWX 仍是独立的开源上游项目,而不是 AAP 的免费订阅层级。

Semaphore UI Community 免费并采用 MIT 许可证。模板、输入表单、Variable Groups、调度、工作流、项目角色、历史和全局运行器,已构成共享自动化服务的基础。团队可以用它进行部署、维护与资源预配,再根据实际的 state、执行、访问、可用性和支持需求选择 Pro 或 Enterprise。

如果团队主要需要共享现有 Ansible 和 IaC 操作,这可能意味着更小的平台投入和更少的基础设施维护。具体差异取决于所需版本与容量,以及组织原本会使用哪些 AAP 服务。AAP 范围更广,并不意味着必须安装所有组件。

支持承诺

两家厂商都提供商业支持。Red Hat 根据适用的支持订阅与事件严重程度,定义支持范围和响应承诺,并提供已公布的 AAP 产品生命周期。

Semaphore UI Pro 包含工作时间内的厂商支持。Enterprise 提供定制 SLA 选项,以及上线、配置、升级和迁移协助。团队可在同一产品系列内获得支持,并为要求更高的环境获取附加服务。

如何选择

根据团队需要共享的工作,以及围绕这些工作所需的服务进行选择。预先配置的重启、定时备份和资源预配工作流,与面向全公司的 Ansible 内容和治理服务,所需的平台范围不同。

何时选择 Ansible Automation Platform

如果运营企业级 Ansible 平台本身就是核心需求,AAP 很适合。

  • 你需要 Red Hat 内容与支持生态。 认证 collection、private automation hub 和明确的产品生命周期属于采购或运营要求。
  • 平台负责管理 Ansible 资源。 操作人员管理主机、同步资产清单来源,并为资产清单和凭据分配独立访问权限。
  • 你需要附加平台服务。 Automation mesh、嵌套工作流或 Event-Driven Ansible 能取代团队原本需要自行构建和维护的基础设施。

何时选择 Semaphore UI

如果工程师需要现有自动化的共享界面,而不要求更广泛的 Red Hat 平台生态,可选择 Semaphore UI。

  • 同事需要能够运行的预先配置操作。 工程师使用共享资产清单、凭据和 Variable Groups,一次配置部署、备份、服务重启或证书续期。同事提供运行输入,并在同一界面查看结果。
  • 资源预配与运维跨越多种工具。 直接运行 Ansible、Terraform/OpenTofu、Terragrunt、Bash、PowerShell 和 Python,再通过工作流连接。希望在这些作业旁提供共享 Terraform/OpenTofu backend 时,可以添加 Pro state 存储。
  • 你希望基于已经维护的系统继续构建。 复用 Git 资产清单和外部发现,将 CI 与事件处理保留在现有服务中,并在可用基础设施上部署二进制文件、软件包或容器。运行器可将执行放到私有系统附近。
  • 你需要有针对性的商业功能与支持。 根据服务所需的执行、访问与可用性控制选择 Pro 或 Enterprise,并在同一产品系列内获得厂商支持。当需求不包括更广泛的 Red Hat 内容与平台生态时,这可能更经济。

常见问题

能否在 Semaphore UI 中复用现有 Ansible Tower 或 AAP playbook?

可以复用现有 Ansible playbook 和基于 Git 的资产清单定义。Job Template、凭据引用、输入表单、调度和权限需要对应的 Semaphore UI 配置。准备新模板时,应检查执行环境提供的依赖以及现有工作流的行为。

Semaphore UI 能否在同一工作流中连接 Ansible 与 Terraform?

可以。专用 Terraform/OpenTofu 或 Terragrunt 模板可以先执行,再衔接 Ansible 配置和验证任务。使用服务器或运行器上的本地执行器时,Semaphore UI 2.20 将收集的变量值传入后续模板声明的输入。传递变量值不等于传输保存的 plan 或其他文件。

支持人员能否在不管理项目的情况下运行预先配置的作业?

可以。Semaphore UI Community 包含 Task Runner 角色,允许启动项目模板,并只读访问其他项目资源。Enterprise 增加自定义角色和所选模板的执行权限。AAP 分别控制 Job Template 执行,以及底层资产清单和凭据访问,适合操作人员需要自行组合已授权资源的场景。

没有 Kubernetes 集群也能自托管吗?

两款产品都可以。Semaphore UI 支持二进制文件、原生软件包和 Docker,也支持 Kubernetes。除 OpenShift Operator 部署外,AAP 2.6 还支持在 RHEL 上使用 Podman 容器化安装。应根据所需的完整服务与支持范围选择,而不是假设 AAP 始终需要 Kubernetes。

能否保留 AAP,同时使用 Semaphore UI 执行特定操作?

可以。AAP 可保留现有 Ansible 作业、内容分发和资产清单治理,Semaphore UI 则运行特定 IaC 或维护操作。团队自行实现的 API 连接可以请求这些模板并检查结果。Semaphore UI 需要自己预先配置的资产清单,或与获准来源集成,不能假设会自动同步。

团队需要哪个 Semaphore UI 版本?

Community 已涵盖共享模板、资产清单、凭据、输入表单、调度、工作流、项目角色和任务历史。Pro 增加 state 存储、项目运行器、Docker 执行和厂商支持等功能。Enterprise 增加更细致的访问控制、高可用性和 Kubernetes 任务执行。应按这些要求选择版本,而不是将所有生产使用都视为 Enterprise 需求。

本文对你有帮助吗?

参考来源

  1. Red Hat, “Ansible components”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/discover-ansible_components (访问日期: ).
  2. Red Hat, “Installation and deployment models”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/plan-ref_installation_deployment_models (访问日期: ).
  3. Red Hat, “Scale automation across your infrastructure with automation mesh”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/administer-assembly_planning_mesh (访问日期: ).
  4. Red Hat, “About the Terraform integration”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/integrate-con_terraform_intro (访问日期: ).
  5. Red Hat, “Orchestrate complex automation with workflow job templates”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/develop-assembly_ug_controller_workflow_job_templates (访问日期: ).
  6. Red Hat, “Understand how to configure workflows”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/develop-assembly_ug_controller_workflows (访问日期: ).
  7. Red Hat, “Configure nodes in workflow visualizer”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/develop-ref_controller_approval_nodes (访问日期: ).
  8. Red Hat, “Create repeatable, shareable job templates to standardize automation runs”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/develop-proc_controller_create_job_template (访问日期: ).
  9. Red Hat, “Schedule recurring automation”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/develop-assembly_ug_controller_schedules (访问日期: ).
  10. Red Hat, “Define automation target hosts in your inventory files”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/administer-assembly_controller_inventories (访问日期: ).
  11. Red Hat, “Sync inventory data with external sources”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/develop-con_controller_inventory_sync_jobs (访问日期: ).
  12. Red Hat, “View, create, and assign roles to grant user access to resources”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/secure-assembly_gw_roles (访问日期: ).
  13. Red Hat, “Configure an external secret management system for automation”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/secure-assembly_controller_secret_management (访问日期: ).
  14. Red Hat, “Define rules that trigger automation from events”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/administer-assembly_eda_rulebook_activations (访问日期: ).
  15. Red Hat, “Manage your organization’s automation content”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/administer-manage_your_organization_s_automation_content (访问日期: ).
  16. Red Hat, “Ansible automation portal architecture and licensing”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/install-con_self_service_architecture_licensing (访问日期: ).
  17. Red Hat, “Ansible Automation Platform Life Cycle”. URL: https://access.redhat.com/support/policy/updates/ansible-automation-platform (访问日期: ).
  18. Semaphore UI, “Installation”. URL: https://semaphoreui.com/docs/admin-guide/installation (访问日期: ).
  19. Semaphore UI, “Applications”. URL: https://semaphoreui.com/docs/user-guide/apps (访问日期: ).
  20. Semaphore UI, “Workflows”. URL: https://semaphoreui.com/docs/user-guide/workflows (访问日期: ).
  21. Semaphore UI, “Terraform/OpenTofu”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform (访问日期: ).
  22. Semaphore UI, “Inventories”. URL: https://semaphoreui.com/docs/user-guide/inventory (访问日期: ).
  23. Semaphore UI, “Team roles and extended RBAC”. URL: https://semaphoreui.com/docs/user-guide/team#extended-rbac (访问日期: ).
  24. Semaphore UI, “Key Store”. URL: https://semaphoreui.com/docs/user-guide/key-store (访问日期: ).
  25. Semaphore UI, “Integrations”. URL: https://semaphoreui.com/docs/user-guide/integrations (访问日期: ).
  26. Semaphore UI, “Community, Pro and Enterprise”. URL: https://semaphoreui.com/pricing (访问日期: ).
  27. Semaphore UI, “Runners”. URL: https://semaphoreui.com/docs/admin-guide/runners (访问日期: ).
  28. Semaphore UI, “High availability”. URL: https://semaphoreui.com/docs/admin-guide/ha (访问日期: ).
  29. Semaphore UI, “Task Templates”. URL: https://semaphoreui.com/docs/user-guide/task-templates (访问日期: ).
  30. Semaphore UI, “Schedules”. URL: https://semaphoreui.com/docs/user-guide/schedules (访问日期: ).
  31. Semaphore UI, “Semaphore local execution, workflow outputs, inventory paths, host limits and branch overrides”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/local_executor.go (访问日期: ).
  32. Semaphore UI, “Semaphore runner output capture and executor limits”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/runners/job_pool.go#L167-L192 (访问日期: ).
  33. Semaphore UI, “Semaphore workflow input mapping model”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Workflow.go#L27-L44 (访问日期: ).
  34. Red Hat, “Ansible Automation Platform interface example”. URL: https://www.redhat.com/en/blog/whats-new-in-ansible-automation-platform-2.6 (访问日期: ).
  35. Red Hat, “Ansible Automation Platform pricing and deployment options”. URL: https://www.redhat.com/en/technologies/management/ansible/pricing (访问日期: ).
  36. Red Hat, “Configure central authentication for Ansible Automation Platform”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/secure-assembly_gw_configure_authentication (访问日期: ).
  37. Semaphore UI, “Authentication”. URL: https://semaphoreui.com/docs/admin-guide/authentication (访问日期: ).
  38. Red Hat, “Configure logging components”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/observe-ref_controller_loggers (访问日期: ).
  39. Semaphore UI, “Audit log”. URL: https://semaphoreui.com/docs/admin-guide/audit-log (访问日期: ).
  40. Red Hat, “Production Support Terms of Service”. URL: https://access.redhat.com/support/offerings/production/sla (访问日期: ).
  41. Red Hat, “Configuring self-service automation portal”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/pdf/configuring_self-service_automation_portal/Red_Hat_Ansible_Automation_Platform-2.6-Configuring_self-service_automation_portal-en-US.pdf (访问日期: ).
  42. Semaphore UI, “Variable Groups and reusable configuration”. URL: https://semaphoreui.com/docs/user-guide/environment (访问日期: ).
  43. Semaphore UI, “Tasks, execution history and Ansible summaries”. URL: https://semaphoreui.com/docs/user-guide/tasks (访问日期: ).
  44. Semaphore UI, “Terraform plan and apply command construction in the Semaphore UI 2.20 candidate”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db_lib/TerraformApp.go (访问日期: ).
  45. Semaphore UI, “Get started”. URL: https://semaphoreui.com/docs/getting-started (访问日期: ).
  46. Red Hat, “Set extra variables in job templates”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/develop-ref_controller_job_template_variables (访问日期: ).
  47. Semaphore UI, “Consul dynamic inventory”. URL: https://semaphoreui.com/docs/user-guide/inventory/consul-dynamic-inventory (访问日期: ).
  48. Red Hat, “Add a source to an inventory”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/administer-proc_controller_add_source (访问日期: ).
  49. Ansible community, “Ansible constructed inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/constructed_inventory.html (访问日期: ).
  50. Red Hat, “Create dynamic groups with constructed inventories”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/administer-ref_controller_constructed_inventories (访问日期: ).
  51. Semaphore UI, “Inventory types and stored resources”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Inventory.go (访问日期: ).
  52. Red Hat, “Launch a job template and enable fact storage”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/develop-proc_controller_launch_job_template (访问日期: ).
  53. Semaphore UI, “Runner selection and capacity”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/RemoteJob.go (访问日期: ).
  54. Red Hat, “Define where automation runs with host and node groupings”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/administer-define_where_automation_runs_with_host_and_node_groupings (访问日期: ).
  55. Semaphore UI, “Ansible role and collection installation”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db_lib/AnsibleApp.go (访问日期: ).
  56. Red Hat, “Configure collections from source management to run in a project”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/develop-ref_projects_collections_support (访问日期: ).
  57. Red Hat, “Control where automation runs with container groups”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/administer-con_controller_container_groups (访问日期: ).
  58. Semaphore UI, “Task dispatch, runner routing and concurrency”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/TaskPool.go (访问日期: ).
  59. Red Hat, “How job capacity is determined and impacts job runs”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/optimize-con_controller_capacity_determination (访问日期: ).
  60. Semaphore UI, “Notification channels”. URL: https://semaphoreui.com/docs/admin-guide/notifications (访问日期: ).
  61. Red Hat, “Create a notification template”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/observe-proc_controller_create_notification_template (访问日期: ).
  62. Semaphore UI, “Terraform HTTP backend and state history”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform/states (访问日期: ).
  63. Semaphore UI, “Terraform/OpenTofu workspaces”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform/workspaces (访问日期: ).
  64. Red Hat, “Terraform backend configuration credentials”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/secure-ref_controller_credential_terraform (访问日期: ).
  65. Semaphore UI, “Workflow template selection across automation tools”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/web/src/components/workflow/WorkflowQuickAddMenu.vue (访问日期: ).
  66. Semaphore UI, “External secret storage types in the Semaphore UI 2.20 candidate”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/SecretStorage.go (访问日期: ).
  67. Devolutions, “Ansible collection and secret lookup plugins”. URL: https://github.com/Devolutions/ansible-dvls (访问日期: ).
  68. Semaphore UI, “CyberArk secret storage for Enterprise”. URL: https://semaphoreui.com/docs/user-guide/key-store/cyberark (访问日期: ).
  69. Red Hat, “Review Ansible job output and host events”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/get_started-assembly_gs_auto_op (访问日期: ).
  70. Red Hat, “Configure generic OIDC authentication”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/secure-proc_controller_set_up_generic_oidc (访问日期: ).
  71. Red Hat, “Deploy the MCP server on Ansible Automation Platform”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/extend-assembly_deploying_ansible_mcp_server (访问日期: ).
  72. Red Hat, “Use the automation intelligent assistant”. URL: https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/extend-con_using_chatbot (访问日期: ).
  73. cloin, “Community MCP connector for Semaphore UI”. URL: https://github.com/cloin/semaphore-mcp (访问日期: ).

本比较由 Semaphore UI 团队依据上方列出的文档、仓库和产品信息编写。每条来源均记录了访问日期。