<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>部署 on 蔡大锅's Blog</title><link>https://bingorun.cn/tags/%E9%83%A8%E7%BD%B2/</link><description>Recent content in 部署 on 蔡大锅's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>©2025-2026 沪ICP备2025139614号-2</copyright><atom:link href="https://bingorun.cn/tags/%E9%83%A8%E7%BD%B2/index.xml" rel="self" type="application/rss+xml"/><item><title>用提示词让 AI 给你部署一个 Hugo 博客</title><link>https://bingorun.cn/posts/how-i-deployed-hugo-blog-with-prompts/</link><pubDate>Thu, 03 Sep 2026 22:30:00 +0800</pubDate><guid>https://bingorun.cn/posts/how-i-deployed-hugo-blog-with-prompts/</guid><description>&lt;h2 id="背景一个程序员的决定">背景:一个程序员的决定&lt;/h2>
&lt;p>我有台腾讯云服务器,上面跑着我的 AI 助手 Hermes。最近想搭个博客写点东西,按老路子:查文档 → 装环境 → 抄配置 → 反复试错,一个周末就没了。&lt;/p>
&lt;p>这次我决定换个玩法:&lt;strong>把部署这件事,完整地交给 AI&lt;/strong>。&lt;/p>
&lt;h2 id="提示词长什么样">提示词长什么样&lt;/h2>
&lt;p>核心思路是把一段部署任务写成&amp;quot;规格说明书&amp;quot;,而不是&amp;quot;对话&amp;quot;。关键要素:&lt;/p>
&lt;div class="highlight">&lt;div style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;">&lt;tr>&lt;td style="vertical-align:top;padding:0;margin:0;border:0;">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4
&lt;/span>&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-text" data-lang="text">&lt;span style="display:flex;">&lt;span>1. 明确范围:只做环境搭建,不生成、不发布任何文章
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2. 逐条步骤:安装 → 建站 → 主题 → 配置 → 部署脚本 → 冒烟测试
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>3. 硬约束:sudo可用但不做全量升级;预览只绑127.0.0.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>4. 禁令清单:不碰指定目录、不改无关配置、不起常驻进程
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>5. 验收清单:每一步的产出物和自检项
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>这份&amp;quot;说明书&amp;quot;发出去之后,AI 做了什么?&lt;/p>
&lt;h2 id="ai-实际做了什么">AI 实际做了什么&lt;/h2>
&lt;p>整个过程我只发了一条消息,剩下的全是它自己跑:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>环境探测&lt;/strong>:先查自己是什么用户、网络通不通、工具装没装——像人类工程师接到任务先摸环境&lt;/li>
&lt;li>&lt;strong>下载安装 Hugo&lt;/strong>:GitHub 直连断流,它自动切换镜像源,下了 3 个镜像才成功&lt;/li>
&lt;li>&lt;strong>版本踩坑&lt;/strong>:最新主题要求 Hugo ≥ 0.146,而最新 Hugo 0.152 又要求 glibc ≥ 2.32(系统只有 2.31),它自动降级到 0.146.0,刚好同时满足两边&lt;/li>
&lt;li>&lt;strong>Git Submodule 修复&lt;/strong>:submodule 添加失败后,它自己重建仓库、补 commit、重新注册&lt;/li>
&lt;li>&lt;strong>冒烟测试&lt;/strong>:构建、部署、验证产物,输出自检清单&lt;/li>
&lt;/ol>
&lt;p>全程零人工干预。中途有一步它的删除操作触发了安全确认,我回了个&amp;quot;确认删除&amp;quot;,其余时间我都在干别的。&lt;/p>
&lt;h2 id="挂载与发布">挂载与发布&lt;/h2>
&lt;p>博客建好后,我又说了一句&amp;quot;按你的想法挂到 nginx 上&amp;quot;,它:&lt;/p>
&lt;ul>
&lt;li>备份 nginx 配置 → 加 &lt;code>location /blog/&lt;/code> → 语法检查 → 平滑重载&lt;/li>
&lt;li>第一次测试发现 CSS 404(正则 location 抢了前缀 location 的流量),自己定位、自己修、复测通过&lt;/li>
&lt;li>验证了博客、原有站点、HTTPS 证书三件事都没被影响&lt;/li>
&lt;/ul>
&lt;p>然后我让它写这篇文章,发布,你现在看到的就是结果。&lt;/p>
&lt;h2 id="思考部署这件事变天了">思考:部署这件事,变天了&lt;/h2>
&lt;p>这件事给我的触动比博客本身大。&lt;/p>
&lt;h3 id="从操作机器到描述意图">从&amp;quot;操作机器&amp;quot;到&amp;quot;描述意图&amp;quot;&lt;/h3>
&lt;p>传统部署,我们的工作对象是&lt;strong>命令和配置文件&lt;/strong>:背参数、抄文档、改一行测一次。现在的对象变成了&lt;strong>意图和约束&lt;/strong>:我要什么、不要什么、边界在哪。&lt;/p>
&lt;p>你会发现写好提示词的功夫,和写好运维手册的功夫是同一种功夫——只是消费者从&amp;quot;实习生&amp;quot;变成了&amp;quot;AI&amp;quot;。&lt;/p>
&lt;h3 id="验收思维比执行思维更重要">验收思维比执行思维更重要&lt;/h3>
&lt;p>AI 时代,执行成本趋近于零,&lt;strong>判断力成了稀缺资源&lt;/strong>。这次任务里最有价值的不是那些命令,而是:&lt;/p>
&lt;ul>
&lt;li>&amp;ldquo;不做全量升级&amp;rdquo;(防止它顺手 apt upgrade 搞挂环境)&lt;/li>
&lt;li>&amp;ldquo;只绑 127.0.0.1&amp;rdquo;(防止预览服务暴露公网)&lt;/li>
&lt;li>&amp;ldquo;不碰 weekly-review 目录&amp;rdquo;(防止误伤已有服务)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>约束写得越清楚,结果越可控。&lt;/strong> 这和带新人是一个道理,只是 AI 执行得更快,错得也更快,所以围栏必须更明确。&lt;/p>
&lt;h3 id="安全模型也要升级">安全模型也要升级&lt;/h3>
&lt;p>有意思的是,这次 AI 在删除文件时主动停下来要我确认——因为之前我给它立过规矩:删除必先问,改文件先备份。这相当于给 AI 配了一套&amp;quot;变更管理流程&amp;quot;。&lt;/p>
&lt;p>以前我们防的是人误操作,现在还要防 AI 过度自信。&lt;strong>信任但要确认&lt;/strong>(trust but verify)从管理原则变成了技术架构。&lt;/p>
&lt;h3 id="试错成本的重定价">试错成本的重定价&lt;/h3>
&lt;p>镜像断流、glibc 版本冲突、CSS 404——搁以前任何一件都够我折腾半小时。现在 AI 用几分钟的自动重试和降级搞定了,而且每次修改前都留了备份。&lt;/p>
&lt;p>&lt;strong>当试错变便宜,就该把决策前置、把验证做厚&lt;/strong>:验收清单(自检项)就是新的&amp;quot;测试用例&amp;quot;。&lt;/p>
&lt;h2 id="写在最后">写在最后&lt;/h2>
&lt;p>这篇博客本身就是一次演示:从提示词 → 环境搭建 → 挂载上线 → 文章发布,一条链路全程 AI 完成,人只负责三件事:&lt;strong>定边界、给确认、验结果&lt;/strong>。&lt;/p>
&lt;p>AI 时代,部署测试的方法升级了,本质上是一次分工转移:&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>&lt;/th>
 &lt;th>以前&lt;/th>
 &lt;th>现在&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>人的工作&lt;/td>
 &lt;td>敲命令、抄配置&lt;/td>
 &lt;td>写规格、定约束、验结果&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>工具&lt;/td>
 &lt;td>手册 + 终端&lt;/td>
 &lt;td>提示词 + Agent&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>核心能力&lt;/td>
 &lt;td>记得住参数&lt;/td>
 &lt;td>说得清意图&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>安全保障&lt;/td>
 &lt;td>小心谨慎&lt;/td>
 &lt;td>制度化的确认与备份&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>机器越来越会干活,人越来越像架构师。&lt;strong>转换思路,把自己从执行者挪到设计者的位置上&lt;/strong>——这是这半天折腾给我的最大收获。&lt;/p>
&lt;hr>
&lt;p>&lt;em>本文由人类口述意图,AI(Hermes)执行部署并起草,人类审核定稿。&lt;/em>&lt;/p></description></item></channel></rss>