103 lines
2.6 KiB
Markdown
103 lines
2.6 KiB
Markdown
# HANDOFF_20260419_2117
|
||
|
||
更新时间:2026-04-19 21:17 CST
|
||
|
||
## 本轮结论
|
||
|
||
`mainland-worker-01` 的最新正式 rollout 已完成根因收口:
|
||
|
||
- `release_id = 7`
|
||
- `rollout_id = 6`
|
||
- `job_id = 211`
|
||
|
||
执行结果:
|
||
|
||
- 发布包下载成功
|
||
- `/opt/domaincheck/downloads/domaincheck_release_20260419_205437.tar.gz`
|
||
- release 解压成功
|
||
- `/opt/domaincheck/releases/domaincheck_release_20260419_205437`
|
||
- `current` 软链切换成功
|
||
- `/opt/domaincheck/current -> /opt/domaincheck/releases/domaincheck_release_20260419_205437`
|
||
- 最终失败在:
|
||
- `systemctl restart domaincheck-worker`
|
||
|
||
控制面失败结果原文:
|
||
|
||
- `restart failed: domaincheck-worker`
|
||
- `Failed to restart domaincheck-worker.service: Interactive authentication required.`
|
||
|
||
## 真实根因
|
||
|
||
不是发布包问题,也不是目录权限问题了。
|
||
|
||
当前根因是:
|
||
|
||
- `domaincheck-node-agent` 运行身份仍是 `www`
|
||
- 它具备下载、解压、切换 `current` 的权限
|
||
- 但不具备执行 systemd 服务重启的权限
|
||
|
||
所以当前所有以下动作在 mainland 机器上都会有同类风险:
|
||
|
||
- `deploy.release`
|
||
- `service.restart`
|
||
- 任何依赖 node-agent 直接操作 systemd 的动作
|
||
|
||
## 本轮已做代码修正
|
||
|
||
已修改:
|
||
|
||
- `domain-api/deploy/systemd/domain-node-agent.service`
|
||
- `User=root`
|
||
- `Group=root`
|
||
- `domain-api/deploy/multi-region/fix_mainland_release_base.sh`
|
||
- 安装 node-agent drop-in 时补齐:
|
||
- `User=root`
|
||
- `Group=root`
|
||
|
||
已验证:
|
||
|
||
- `bash -n domain-api/deploy/multi-region/fix_mainland_release_base.sh`
|
||
|
||
## 现场下一步
|
||
|
||
下一步不要再重复发起新的 rollout,先把 `mainland-worker-01` 的 node-agent 切到 root。
|
||
|
||
建议现场执行:
|
||
|
||
```bash
|
||
mkdir -p /etc/systemd/system/domaincheck-node-agent.service.d
|
||
cat >/etc/systemd/system/domaincheck-node-agent.service.d/runtime-user.conf <<'EOF'
|
||
[Service]
|
||
User=root
|
||
Group=root
|
||
EOF
|
||
systemctl daemon-reload
|
||
systemctl restart domaincheck-node-agent
|
||
systemctl status domaincheck-node-agent --no-pager -l
|
||
```
|
||
|
||
完成后应立即复查:
|
||
|
||
```bash
|
||
systemctl show domaincheck-node-agent -p User -p Group
|
||
journalctl -u domaincheck-node-agent -n 80 --no-pager -l
|
||
```
|
||
|
||
预期结果:
|
||
|
||
- `domaincheck-node-agent` 以 `root` 身份运行
|
||
- 心跳恢复,`mainland-worker-01` 不再是 `stale`
|
||
- 后续再发起 `deploy.release` 时,能够闭环到 `systemctl restart domaincheck-worker`
|
||
|
||
## 当前判断
|
||
|
||
当前主阻塞只剩一个:
|
||
|
||
- mainland node-agent 权限模型未切到 root
|
||
|
||
这个问题修完后,再重新发起 worker rollout,才有资格继续看:
|
||
|
||
- `domaincheck-worker` 是否切到新 PID
|
||
- health check 是否通过
|
||
- rollout 6 之后的 acceptance 是否可继续
|