让每项自动化作业都可重用

将 Playbook 和脚本转为命名作业,预先关联适当目标、凭据和输入,为团队提供明确的执行与结果查看方式。

任务模板

名称 运行 状态
已保存作业的交互示例。此预览中的运行与各工具日志均为模拟。

Playbook 在 Git 中,配置却还在某个人的脑中

在任务模板中保存一次执行配置,为团队提供可直接运行的作业,而不是再次讲解主机、凭据和命令行选项。

一个共享任务模板

共享与委派

让同事无需编辑配置即可执行作业。

一键运行

无需手动搭建环境或记忆命令。

安排日常工作

不再手动惦记补丁和证书更新。

追踪每次运行

查看谁运行了什么、何时运行,以及运行结果。

界面足够清晰,即使不是工程师,也能理解正在发生什么。

Toon Van Dooren首席技术官 · Savvii Hosting
阅读 Savvii 的案例

任务模板如何工作

运行前收集输入

问卷变量收集环境、发布版本或变更引用等变化值。其余配置保留在模板中,供下次运行直接使用。

问卷变量与提示项
Semaphore 新建任务表单,任务为 Deploy release,Environment 为 Staging,发布版本为 v2.8.1,维护引用为 CHG-1042
Semaphore 计划任务列表,包含每周服务器补丁、TLS 证书更新、数据库备份、清单同步、合规检查和日志归档清理
Semaphore 中平台维护的每周 cron 配置与下次运行预览

安排重复性任务

个人 crontab 很容易被遗忘。为已保存的任务模板安排补丁、证书更新或例行检查。每次触发都会创建独立任务,团队可以查看其状态和输出。

Explore Schedules

从一个可重用作业开始

安装 Semaphore,连接仓库中已有的自动化,为团队提供共享的执行入口。

使用现有自动化

保留现有 Playbook、脚本和基础设施代码,为它们添加统一的执行方式。

连接 Git 仓库

通过 HTTPS 或 SSH 使用 GitHub、GitLab、Bitbucket 或其他 Git 托管服务。选择分支和文件,为私有仓库添加凭据。

让已保存的作业投入运行

在工作流中连接任务

在任务模板之间添加依赖关系、审批和失败路径。

工作流

将执行与编辑分开

让团队成员在不修改配置的情况下运行模板。

Access Control

查看任务历史

查看是谁运行了任务、何时开始以及最终结果。

Task history

选择任务执行位置

按运行器标签路由任务

在 Pro 中使用运行器标签,将任务发送到具有作业所需私有网络和工具访问的匹配项目运行器。

项目运行器

为每个模板设置执行器镜像

在 Pro 的 Docker 运行器或 Enterprise 的 Kubernetes 运行器中,覆盖默认作业镜像。固定模板所需的工具链。本地执行会忽略该字段。

执行器镜像配置
DockerKubernetes

通过 Pro 使用项目运行器

按标签路由作业,并为每个模板选择 Docker 镜像。Kubernetes 执行由 Enterprise 提供。

定义团队执行自动化的方式

Web UI 与委派执行

为工程师提供命名作业、运行按钮和所需输入。项目角色与权限决定谁可以执行、谁可以编辑定义。每次执行保留独立的状态和输出。

Git 仓库与分支

使用 GitHub、GitLab、Bitbucket 或其他兼容 Git 托管服务中的 Playbook、配置和脚本。通过 HTTPS 或 SSH 连接,配置分支和工作目录,并继续使用现有 Git 代码审查流程。

Ansible 清单与主机限制

关联定义主机和分组的清单。如果工程师需要为某次运行选择其中一部分目标,请启用 Ansible 主机限制提示项。

共享默认值与运行时输入

变量组保存跨运行重用的配置。内置提示项开放分支、标签或主机限制等选项。问卷变量收集自定义值,工程师可以提供变化部分,而无需重新配置作业的其余内容。

构建与部署模板

使用构建模板分配版本,使用部署模板选择成功的构建。您的自动化负责创建、存储和获取产物,Semaphore 保留两个作业之间带版本的交接关系。

合适的执行环境

在能够访问目标系统的 Semaphore 服务器或已配置的项目运行器上执行。在相应环境中准备所需 Ansible 集合、Python 软件包或其他依赖。Docker 和 Kubernetes 执行器可通过镜像提供作业工具链。

代码变更时运行

启用自动运行后,系统会按配置的轮询间隔检查仓库中的新提交,发现变更时启动模板。代码审查和审批仍应保留在 Git 工作流中。

控制并行执行与通知

决定模板是否允许任务并行执行。为团队配置结果通知;如果只需关注失败,可抑制例行作业的成功消息。

文档与相关功能

FAQ

能直接运行现有 Ansible Playbook,而无需重写吗?

可以。连接 Git 仓库,选择 Ansible playbook,并将其清单和凭据关联到任务模板。之后的运行会复用这些设置。保留现有角色和集合,并确保服务器或运行器具有所需的 Ansible 依赖。了解 Ansible 自动化。

这也适用于 Terraform、OpenTofu 和脚本吗?

任务模板支持 Ansible、Terraform、OpenTofu、Terragrunt、Bash、PowerShell 和 Python。每个模板使用相应工具的字段和执行模型。代码保留在 Git 中,团队获得统一的启动入口。执行环境仍需具备所需工具、软件包和网络访问。

同事能在不修改配置的情况下运行作业吗?

可以。使用项目角色和权限,将项目内的自动化执行与定义编辑分开。同事可使用公开的输入启动准备好的作业,而仓库、清单和凭据引用仍配置在模板中。了解访问控制的工作方式。

能在运行前请求选择环境或版本吗?

可以。添加问卷变量,以收集环境、发布版本或维护编号等自定义值。内置提示项可公开 Ansible 主机限制或分支覆盖等工具选项。工程师只需填写本次运行允许的输入,无需编辑保存的模板。查看问卷表单。

能为补丁、备份或证书更新的 Playbook 设置计划吗?

可以。先准备可用的任务模板,再通过 cron 表达式或预设间隔添加计划。补丁、备份或证书续期由 playbook 或脚本完成,Semaphore 在配置的时间启动。每次运行都有自己的状态和输出。了解计划任务。

在哪里查看是谁运行了作业,以及是否成功?

打开模板的任务历史,查看各次运行的发起者、开始时间、状态和输出,包括错误消息。调查失败时应打开运行记录,而不是仅凭有人点击了运行的消息判断。计划执行也会以任务形式出现。了解运行历史。

API 调用或 Webhook 能启动同一个作业吗?

可以。REST API 可启动任务模板,配置好的 Webhook 集成也可通过传入事件触发模板。复用保存的执行设置,无需在每个调用服务中重复配置。对于支持的运行时覆盖,请启用相应提示项。了解 API 与 Webhook。

能通过审批或失败路径连接多个作业吗?

可以。工作流通过成功与失败路径、审批和延迟,将现有任务模板连接成更大的操作。各任务保留各自的执行配置和输出。当流程需要协调多个作业或在步骤之间由人作出决定时,可使用工作流。了解工作流。

能让作业使用特定运行器或 Docker 镜像吗?

在 Pro 中,运行器标签将任务路由至靠近受管系统且标签匹配的项目运行器。模板可覆盖 Pro 中 Docker 执行或 Enterprise 中 Kubernetes 执行的默认作业镜像。镜像字段不适用于本地执行。了解运行器。

能重用当前在 AWX 或 AAP 中运行的 Ansible 自动化吗?

可以保留已存储在 Git 中的 playbook 和角色。在 Semaphore 中重建它们的执行上下文:仓库、清单、凭据、变量组和任务模板。这是配置迁移,不是自动导入 AWX。在将作业交给团队前,请检查 Ansible 版本、集合、提示项及运行器访问。比较 Semaphore UI 与 AWX。