<feed xmlns='http://www.w3.org/2005/Atom'>
<title>strategy-lab.git/artifacts/etf-recovery-candidate, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>http://git.somhairle.bid/strategy-lab.git/atom?h=main</id>
<link rel='self' href='http://git.somhairle.bid/strategy-lab.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/strategy-lab.git/'/>
<updated>2026-09-18T00:27:24+00:00</updated>
<entry>
<title>chore(ops): 生产部署/回滚/故障演练脚本入库</title>
<updated>2026-09-18T00:27:24+00:00</updated>
<author>
<name>Somhairle H. Marisol</name>
<email>muqiu-han@outlook.com</email>
</author>
<published>2026-09-18T00:27:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.somhairle.bid/strategy-lab.git/commit/?id=bf6681eb29ac8b0c80ca17b2b5869f7de3da1198'/>
<id>urn:sha1:bf6681eb29ac8b0c80ca17b2b5869f7de3da1198</id>
<content type='text'>
[变更性质]
维护性变更：把已通过 84 场景演练的运维脚本纳入版本控制。artifacts/
目录按仓库政策 ignore（本地证据），本提交按 Leader 指令以 -f 显式
加入，未包含任何密钥（脚本扫无 secret/token/password）。

[维护内容]
此前 ops/deploy.sh、rollback.sh 与 ops-drill2.sh 仅存在于本地
artifacts/（被 .gitignore 排除），生产依赖它们但仓库内无源码可审计。

[实现方案]
deploy.sh：deploy.lock 防并发、阶段化备份（env/二进制/前端/DB，
manifest 原子化写入 0700 目录）、显式 rc helper、零停机 swap、失败
路径自动 restore、健康与 sha256 校验；restore 兼做手动回滚。
rollback.sh：stop -&gt; 替换 -&gt; start -&gt; 锁 + health + hash 强校验。
ops-drill2.sh：84 场景故障注入演练（备份/swap/restore 阶段注入矩阵、
RA/RB1/RB2 恢复分支），PASSED=84 FAILED=0 exit 0 为执行合约。
用法见 docs/etf-recovery-release-handoff.md 第 3 节。

[影响范围]
脚本本身未改（与演练定稿版本一致），仅入库；回滚目标记录在
manifest（previous_worker_image 等）。
</content>
</entry>
</feed>
