将日常作业从待办列表中移除

为 Ansible Playbook、基础设施代码和脚本设置计划。将补丁、证书更新和备份纳入统一的共享计划,并为每次运行保留结果。

输入基础设施
计划新建计划
每周服务检查0 2 * * 0Staging service preflight
证书更新0 3 * * *Renew public TLS certificates
数据库备份检查0 6 * * 1-5Verify production backups
三条每周历史记录为示例。选定任务 22 的日志行改编自 Semaphore 2.19.12 中录制的一次性 Ansible 预检查,目标是三个可丢弃的本地预发布服务端点。此原型不会执行任务。

Cron 条目已经存在,例行工作还在正常完成吗?

补丁窗口和证书更新很容易被遗忘。凭据变化或主机不可达,都可能让原本正常的作业失败。仅有定时器并不能告诉团队执行了什么,以及哪些内容需要处理。

将计划与结果保存在一起. 为已保存的任务模板设置计划,检查下次运行,并从历史中打开每次执行。触发时间与实际工作始终可以一起查看。

安排作业并跟踪每次运行

让定期工作成为团队日常流程的一部分

为团队已在使用的作业设置计划

将仓库、清单和凭据保存在同一个可重用的任务模板中。

任务模板

查看每次计划执行

每次运行都有独立的状态、时间戳和任务输出。

运行历史与日志

定时作业失败时发送告警

为补丁、证书更新和其他重复性作业选择通知渠道与事件。

通知

让日常自动化更可预测

为已测试的作业设置计划

计划任务只为现有任务模板添加触发时间。仓库、Playbook 或脚本、目标配置、凭据引用及允许的输入仍由模板保存。实际操作时,这个顺序很重要:先手动运行并查看输出,再为同一定义设置执行频率。之后修改模板会影响所有未来的触发,因此应像审查其执行的代码一样审查模板变更。

补丁、证书更新和备份检查

这些作业往往会悄然停止工作。将计划关联到经过测试的 Ansible 补丁 Playbook、TLS 更新脚本或备份验证检查,就能将执行频率纳入项目,而不只保存在某个工程师的 crontab 中。Semaphore 启动操作并记录结果,但 Playbook 或脚本仍负责验证变更,并在未成功时以非零退出码结束。将这些失败发送到团队关注的渠道,让遗漏的更新能在证书到期前被发现。

Cron 表达式、预设和服务器时区

选择预设间隔,或编写标准五字段 cron 表达式。编辑器在表达式旁显示配置的计划时区,并同时预览该时区和浏览器本地时间下的下次运行,以便快速发现表达式与预期不符。管理员在服务器级设置计划时区,默认为 UTC,没有每个计划独立的时区选择器。如果所选时区采用夏令时,请在依赖维护窗口之前检查时钟切换前后的预期执行时间。

提供定时运行所需的值

计划任务可通过模板开放的提示项传入参数,例如分支、Ansible 主机限制或问卷字段。在启用定时执行前,先决定哪些值可以变化,手动测试对应组合,再将其保存在计划中。开放的输入范围应保持最小:不能让计划任务扩大原本按较小范围审查的操作目标。

查找并排查失败的一次执行

每次触发都会成为普通任务,拥有独立的状态、开始时间、来源上下文和输出,因此排查应从实际发生的运行开始,而不是当前模板。诊断延迟时,请比较计划开始时间和实际开始时间。错过执行窗口不会自动重试或补执行,因此恢复需要明确决策:先查看原始输出,再启动新的运行,通常可采用更小的主机限制范围。

为无人值守运行选择告警

计划任务可以继承模板中配置的告警,也可以使用另一组项目告警。将无人值守任务的失败通知发送给负责例行运维的团队,同时为手动执行保留独立的告警选项。

安排一次性维护运行

对维护检查或临时环境清理等需在指定时间执行一次的操作,使用一次性计划。日常工作则保留重复 cron 计划。两种方式都会启动已保存任务模板,并留下常规执行记录以供查看。

FAQ

Semaphore 能为 Ansible、Terraform、OpenTofu 和脚本设置计划吗?

可以。Semaphore 计划启动现有任务模板,无论它执行的是 Ansible Playbook、Terraform 或 OpenTofu 配置,还是 Bash、Python、PowerShell 脚本。先在模板中配置仓库、凭据、目标和执行环境,再向计划添加时间与受支持的输入。每次触发都保留常规任务记录,而不是采用另一套定时脚本执行模型。

能使用 cron 表达式或预设间隔吗?

可以。Semaphore 提供常见计划预设,也支持标准五字段 cron 表达式以设置更具体的时间。保存之前,使用下次运行预览确认表达式符合预期。计划启动现有任务模板,不会替换 Git 仓库中的 Playbook、Terraform 配置或脚本。如果重复运行会操作同一基础设施,应确保作业具有幂等性。

能为服务器补丁和 TLS 证书更新设置计划吗?

可以,前提是已为该操作准备经过测试的任务模板。例如,每周 Ansible 补丁 Playbook 或证书更新脚本都可由计划触发。Semaphore 决定启动时间并保留执行记录,而 Playbook 或脚本仍须执行更新、验证结果并准确报告失败。如果失败运行需要在下一个补丁窗口或证书到期之前处理,请添加通知。

计划使用哪个时区?

计划任务使用 Semaphore 服务器配置的时区,默认为 UTC。显示的时区和下次运行预览用于解释表达式,并非每个计划独立的时区设置。请将服务器时区与执行频率一起记录,尤其是工程师分布在多个地区时。如果使用夏令时时区,请在依赖维护窗口之前,检查时钟切换前后的预期执行时间。

计划任务能提供不同的分支、清单或主机限制吗?

计划任务可通过模板已启用的提示项传入受支持的任务参数。先决定哪些值可以变化,只开放相应输入。手动测试所需组合后,再保存计划中的覆盖值。可重用的执行配置仍保存在模板中。计划任务不应成为绕过操作输入设计或悄然扩大目标范围的途径。

定时操作执行时间超过间隔时会怎样?

定时工作使用常规任务执行模型及其并发和容量设置。定时器频繁触发,并不意味着可以安全地对同一目标进行重叠变更。应比较预期任务时长与间隔,并考虑在自动化本身加入锁定或幂等行为。在为资源密集型或破坏性操作采用较短间隔之前,请在实际部署中测试等待和重叠行为。

在哪里查看失败的定时运行?

打开项目任务历史,找到需要排查的执行。决定是否重跑之前,先检查状态、时间、来源上下文和工具输出。诊断延迟时,比较计划开始与实际开始时间。通知可将重要结果发送到配置的渠道,但详细执行记录仍保存在任务中。

计划任务包含自动重试和错过运行的补执行吗?

不要假定已安装版本具备文档未说明的重试、补执行或业务日历行为。计划任务定义何时启动操作;停机后的恢复是需要单独设计和测试的要求。请决定错过的备份或维护检查是延后执行、跳过,还是由工程师决定。选择取决于操作本身及其对目标环境的影响。

能按计划启动工作流吗?

当前的计划表单选择的是任务模板,而不是工作流。要按时启动完整工作流,可由外部调度器调用 Pro 工作流 API,或在 Semaphore 中计划执行一个调用该 API 的脚本任务模板。工作流随后遵循配置的依赖、审批及成功与失败路径,其进度记录为独立的工作流运行。请参阅工作流和工作流 API 文档。