第五章 自动化与 API

一句话概括这一章

运维的尽头是“把重复动作写成不可变的流程”。1Panel 提供两条自动化路径:一条在面板里点(计划任务 + 1pctl 命令),一条在面板外调(API 接口)。这一章讲的是怎么把前四章学的网站、数据库、备份都串成自动跑的流水线,以及怎么让 CI/CD 和监控告警跟面板对话。

这一章解决什么问题

小节 场景 一句话答案
5.1 API 接口与鉴权速查 想写脚本调面板,先搞懂签名 两个 Header + 两种 Token 生成方式,HMAC-SHA256 优先
5.2 用 API 批量管理网站与备份 十台机器一百个站,手动点不完 脚本批量备份,配合保留份数和备份账号
5.3 计划任务联动与 1pctl 脚本化 定时任务 + 命令行工具组合出自动化 计划任务有 11 种类型,1pctl 管面板本身
5.4 与 CI/CD、监控告警打通的思路 面板不是孤岛 备份推对象存储、API 触发部署、告警转发到群

先打通一个认知:自动化之前先把“手动闭环”跑通

这是这一章最重要的一条心法,先立规矩:

任何要自动化的流程,先手动完整跑一遍。

为什么?

现象 自动化之后会发生什么
手动时要看一眼输出才决定下一步 自动化脚本没有眼睛,会一路错到底
备份文件从没验证过能不能恢复 自动定时备份 = 定时产生“自以为安全”的假象
恢复流程只有你会操作 出事时你不在,流水线也救不了你

自动化放大的是流程本身:好流程被放大成效率,烂流程被放大成事故。2.3 节的备份恢复演练、1.2 节的“先备份再动手”,都是自动化的前置条件,不是可选项。

三条路径,按“侵入性”排序

路径 入口 侵入性 适合什么
计划任务 + 任务库 面板内,全是图形界面 低 备份、清理、巡检
1pctl 命令行 服务器终端 中 管面板本身(启停、改配置、重置)
API 接口 任何能发 HTTP 的程序 高 编程化集成、CI/CD、二次开发

注意顺序不是“哪个高级”,而是“哪个够用”。能计划任务解决的别写脚本,能脚本解决的别动 API。侵入性越高,维护成本越高——脚本和 API 客户端都会随版本升级而坏掉,计划任务不会。

一个认知:API 的入口在用户菜单里

版本说明要知道:v2.2.1 之前,API 接口设置入口在「面板设置」中;v2.2.1 之后,点击左下角用户菜单,进入用户信息抽屉,在「API 接口」区域启用或关闭,点「详情」维护 API Key、IP 白名单和有效时间。

所有 API 的完整清单在 Swagger:{host}:{port}/1panel/swagger/index.html。写脚本之前先逛一圈 Swagger,比啃文档快十倍。

版本边界

能力 社区版 专业版/企业版
计划任务(基础类型) ✅ ✅
1pctl ✅ ✅
API 接口 ✅ ✅
执行失败告警及部分高级任务 取决于许可证和功能配置 更多

好消息是这一章基本不花钱——自动化是社区版的完整能力。1Panel 在“能自动化”这件事上没有设付费墙,这点值得肯定。

一个真实的翻车现场:脚本比面板“勤快”太多

这本书不是鸡汤,讲一个真实模式:

某团队用 API 写了个“每天凌晨全量备份所有网站”的脚本,跑了一周发现磁盘满了——因为备份保留份数在脚本里没写死,面板的保留策略对 API 创建的备份同样生效的前提是任务参数传对。他们改成“保留 7 份”后又过了一周,发现有几台机器的备份根本没成功:脚本的报错只写进了本地日志,没人看。

三点教训,这本书后面会反复强调:

教训 对应章节
自动化流程必须有“结果反馈”——成功也好失败也好,要推到一个有人看的地方 5.2 节
面板能做的配置别在脚本里重写一遍(保留份数、备份账号、目录) 5.2 节
定时任务先手动触发一次,看完整输出 5.3 节

这一章的学习方法

这一章和前四章不一样:前四章是“面板能做什么”,这一章是“你让面板做什么”。 建议这样读:

  1. 先读 5.1——鉴权是所有 API 操作的地基,地基不稳后面全白搭;
  2. 按需读 5.2/5.3——备份自动化和计划任务是最常见的两个落地点,挑一个先跑通;
  3. 5.4 最后读——CI/CD 和监控打通是“锦上添花”,不要在基础闭环没跑通时折腾它。

每节都会给可复制的代码骨架,但骨架不是终点——抄完之后把 print 改成你们团队的告警通道,脚本才真正属于你。

学完这一章你会获得什么

  • 一份可用的 API 鉴权速查表(两种 Token 生成方式都会写);
  • 一套“批量备份 + 保留策略 + 异常通知”的脚本化方案;
  • 知道计划任务的 11 种类型各自怎么用、任务库怎么复用;
  • 1pctl 能做什么、不能做什么(它管面板,不管你的业务);
  • 一张“面板 + CI/CD + 监控告警”的打通草图。

API 的权威说明见 《1Panel 官方文档:技能、API 与常见问题》,计划任务和 1pctl 的完整参数见 《1Panel 官方文档:功能手册》。

下一节:先从最硬的那块骨头啃起——API 鉴权,两行 Header 背后的门道,见 5.1 节。