将作业连接成可重复执行的工作流

通过共享数据、审批和成功或失败路径,协调 Ansible、Terraform 和脚本。

为生产网络制定执行计划运行中
审批尚未开始
为 Linux 主机群打补丁尚未开始
验证公开端点尚未开始
收集事件日志尚未开始
成功时失败时
正在审查基础设施
此预览展示工作流推进到审批步骤。批准后继续执行维护任务和验证,拒绝则在维护任务之前停止。失败分支可见,但此预览不会执行该分支。

作业已经自动化,整个操作却还没有

Playbook 已经完成,但仍需有人复制输出、检查结果并启动下一作业。每次交接都会增加等待,以及遗漏步骤的机会。

将作业连接成工作流。 只需定义一次执行顺序,即可让流程继续,无需手动逐次启动或复制参数值。

共享产物
成功与失败路径
审批
任务依赖

跨工具协调复杂操作

在工作流步骤之间传递数据

将某个作业的输出作为后续作业的输入。工作流产物使值在不同自动化工具之间传递,无需手动复制。您可以选择每一步接收哪些值。

工作流的输出与输入

通过 API 触发和监控工作流

在 Pro 中,可通过工作流 API 从内部门户或其他服务启动运行、跟踪状态并处理审批。

围绕团队流程设计运维操作

保留现有自动化

连接 Ansible、Terraform、OpenTofu、Terragrunt、Bash、Python 和 PowerShell 任务模板。每个作业保留自己的仓库、凭据和执行设置,节点参数提供该步骤的输入。

根据结果分支

使用成功、失败或始终条件选择下一个任务。并行执行独立检查,再通过 All 或 Any 条件汇合。诊断或恢复分支执行的是团队提供的自动化。

在需要的位置加入决策

在审批节点暂停,提供明确说明,并可设置超时。批准或拒绝之前先检查前一个任务。Enterprise 自定义角色可单独授予选定工作流的审批权限,与运行权限分开。请检查用户拥有的所有角色,因为权限会合并生效。

让等待阶段清晰可见

在操作之间使用延迟节点,例如服务重启与健康检查之间。运行视图显示剩余时间。真正的验证应放在独立任务中,并保留其结果。

明确执行了哪个定义

每次运行都会记录其工作流修订和版本。即使可编辑的定义后来发生变化,仍可查看该次执行的流程图,并打开各个任务查看状态、输入和日志。

将工作流连接到您的系统

通过 REST API 启动运行并查看状态。配置任务通知,将重要结果发送给团队。手动执行和协同操作均可使用同一套已保存模板。

文档与相关功能

FAQ

能在一个工作流中结合 Ansible、Terraform 和 Python 吗?

可以。任务节点启动现有任务模板,因此同一个工作流可协调 Ansible playbook、Terraform 或 OpenTofu 配置、Terragrunt、Bash、Python 和 PowerShell。各任务使用各自的工具和执行设置。了解任务模板。

任务能将 Terraform 输出或 Ansible 结果传递到下一步吗?

可以。当前工作流支持 JSON 输出与输入。Terraform、OpenTofu 和 Terragrunt 的输出通过 output -json 收集。Ansible 可使用 set_stats 发布值;脚本可将 JSON 写入 SEMAPHORE_OUTPUTS_FILE。按名称或通过显式边映射,将这些值映射到下游问卷变量。阅读输出与输入指南。

能等待多个检查完成后再启动下一个任务吗?

可以。将工作流分为并行检查;如果下一节点必须等待所有传入路径,应使用 All 汇合。Any 汇合允许符合条件的已完成路径继续。连接边可在成功、失败或任一结果时执行。

工作流能暂停等待审批吗?

可以。添加审批节点,说明所需决策,并可设置超时。运行会保持暂停,直到决策完成。具备所需权限的用户可批准或拒绝。Enterprise 自定义角色可单独授予选定工作流的审批权限,与运行权限分开。划分两项职责时,请检查所有已分配角色。

失败后能运行诊断或清理任务吗?

可以。通过 On failure 连接边关联任务模板,例如健康检查失败后收集服务日志。对于成功或失败后都应执行的后续工作,使用 Always。清理和回滚由您提供的脚本或 Playbook 实现,因此应测试它们对部分完成操作的影响。

不编写 sleep 脚本也能添加暂停吗?

可以。延迟节点等待配置的秒数,并在运行视图中显示剩余时间。可让服务在独立验证任务之前稳定下来。延迟控制时间,后续任务才负责健康检查。

工作流输出可以与项目运行器一起使用吗?

当前工作流输出支持本地和远程运行器。Docker 和 Kubernetes 执行器目前不生成工作流输出。在依赖下游值之前,请检查生成该值的任务所使用的执行器。输出是 JSON 数据,而不是上传的文件。

能通过工作流输出传递密码或文件吗?

工作流输出适合变更编号、目标组、资源标识符等普通 JSON 值。它们以明文存储,不能填充问卷中的秘密字段。密码应存放在“密钥与凭据”中,文件则应使用适当的存储。了解密钥与凭据。

在哪里查看失败的工作流任务?

打开工作流运行记录,查看各节点状态,再打开底层任务查看日志和执行详情。每次运行都保留所用的工作流修订版本。任务通知也可通过配置的渠道向团队告警。了解运行历史。

API 调用能启动工作流吗?

可以。REST API 提供工作流定义、运行、状态查询和审批操作。在内部门户或其他系统中复用保存的工作流,无需在调用端重现执行顺序。了解 API 与 Webhook。