作业已经自动化,整个操作却还没有
Playbook 已经完成,但仍需有人复制输出、检查结果并启动下一作业。每次交接都会增加等待,以及遗漏步骤的机会。
将作业连接成工作流。 只需定义一次执行顺序,即可让流程继续,无需手动逐次启动或复制参数值。
跨工具协调复杂操作
将现有任务模板添加到画布,连接各个步骤并保存工作流。
启动工作流,检查通过后批准下一步。
打开工作流中的任意任务,查看其输出和结果。
围绕团队流程设计运维操作
保留现有自动化
连接 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。
