发版那天:脚本想上机,先过你这关

发版窗口里最怕两件事叠在一起:预发还没巡检完,生产上已经有人(或脚本、AI)直接改。聊天里传密码、多开几个终端手敲,事后也说不清「谁在哪台跑了什么」。

这篇按一次真实发版流程写:预发只读检查自动通过;生产写入版本标记必须管理员同意;同意后由系统代跑,执行记录能下载、也能按客户导出。界面截图来自 mistlab.dev 控制台「自动执行」,不是示意图。

四节:一、从概览走进自动执行 → 二、预发巡检不用人点同意 → 三、生产变更要先过你这关 → 四、结果、证据和规则。你自己在 MistTerm 里敲的命令,不受这一套影响。


一、从概览走进「自动执行」

登录控制台后,概览里会提示:脚本或 AI 要上服务器跑命令,会先来问你一声。点「打开自动执行」,进入专门给自动化用的审批与结果页。

控制台概览:新能力提示脚本或 AI 上机要先问管理员,并提供打开自动执行的入口
概览里的新能力入口:脚本 / AI 上机走「自动执行」,终端手敲不受影响。

进到「自动执行」后,先选团队。页头三句话说清楚流程:给脚本建账号 → 请求出现在「待你审批」→ 同意后系统代跑,结果在「执行结果」里看。上方还能看到近期受控执行次数和失败数。

自动执行页:自动化想上机先过你这关,含三步说明与受控执行统计
「自动化想上机,先过你这关」:说明、KPI,以及待审批 / 执行结果 / 脚本账号 / 怎么判定四个子页。

二、预发巡检:只读检查可以自动通过

发版前先确认预发机器还活着、登录账号对。例如对预发主机跑 hostname、whoami——都是只读检查。命中「预发只读自动通过」规则时,状态是已自动通过,不必等人点同意,系统直接代跑。

已自动通过:发版后巡检确认预发主机名可达,命令为 hostname
筛选「已自动通过」:发版后巡检「确认预发机器主机名可达」,命令 hostname,无需人工点同意。

这次真机回显是本机主机名(演示环境把预发目标指到联调机器上)。重要的是路径:只读 + 预发 → 自动过 → 执行结果里能查到。


三、生产变更:写入版本标记,要管理员同意

生产上写文件就算变更。比如在 API 机器写入本次版本标记 mist-1.2.7。请求会出现在「待你审批」,带上命令原文、目标主机和风险提示。点同意之前,生产机器上什么都不会跑。

待你审批:生产发版在 API 机器写入 mist-1.2.7 版本标记,状态为待审批
待审批:生产发版写版本标记。能看见要跑的命令和目标主机,也可以先勾选允许上机的机器再同意。

管理员勾选主机后点「同意」。成功时右上角会出现「已同意」,以及「已开始执行」——由控制面在服务端代跑,不是把密钥塞回聊天或脚本里。

同意后跳到执行结果:提示已同意、已开始执行完成,列表出现 COMPLETED 记录
同意之后:Toast 提示已同意并开始执行;页面转到「执行结果」,对应记录状态为已完成。

代跑完成后,目标机器上会出现版本标记文件(本次演示写在系统临时目录)。聊天记录里不用再问「到底有没有写上」——以执行结果和下载下来的记录为准。


四、执行结果、导出证据、规则怎么判

「执行结果」按条列出每次代跑:状态、关联请求、时间。每条可以看详情,也可以「下载执行记录」(JSON),方便留给审计或客户。

执行结果列表:多条 COMPLETED,可筛选并按客户导出
执行结果:发版巡检与生产写标记都落在这里。可按客户标签导出一批证据。

需要交给客户时,在导出框填入标签(例如 customer=acme),点「按客户导出」,会打出一批执行记录的归档文件。

执行结果工具栏:按客户导出,输入 customer=acme
按客户导出:用主机上的客户标签收拢证据包,不必一条条翻。

脚本、定时任务、AI 批量要用自动化上机,先在「脚本账号」里建账号、拿到密钥(只显示一次)。密钥泄漏时可以停用或换密钥,不必改每台机器的登录密码。

脚本账号列表:可停用、换密钥
脚本账号:给自动化用的身份。停用后新的上机请求会被拒;换密钥后旧密钥立刻失效。

「怎么判定」写清楚默认规矩:危险命令直接拒绝;生产上的非只读要审批;预发 / 开发环境的只读检查可以自动通过。团队还可以加自己的规则(例如某类命令在预发直接通过)。

怎么判定:危险命令直接拒绝、生产变更要审批等系统规则
怎么判定:系统规则不可改;下面可加团队自己的规则。

危险命令(例如清根目录、乱删库表)不会进「等人点同意」——直接拒绝,管理员也不能放行。

已拒绝列表:危险命令被硬性拒绝
筛选「已拒绝」:危险模式直接拦下,不会靠人工「临时放一马」。

和「终端里手敲」的边界

「自动执行」管的是脚本、AI、定时任务这类自动化上机。你在 MistTerm 终端里自己敲的命令,仍走原来的终端会话,不会每条都弹到「待你审批」。命令记录、团队权限那是另一条线;两边不要混成「装完就什么都拦」。


对照看看你们发版怎么做

  1. 预发只读巡检,是五个窗口手敲,还是走自动执行、结果留在「执行结果」里?
  2. 生产写文件、清缓存、改配置,有没有「先过管理员」这一步?还是聊天里说一声就算?
  3. 脚本 / AI 用的密钥,能不能一键停用或轮换,而不用改服务器登录密码?
  4. 客户或审计要证据时,能不能按客户导出,而不是翻聊天记录?
  5. 危险命令是直接拒绝,还是还能被「临时批一下」放过去?