HANDOFF — 项目交接快照¶
1. 这份文件怎么用¶
本文件由 SessionStart Hook 自动注入到每次会话,是被动阅读的交接档:读完第 2、3 节就应知道「现在到哪一步、下一步做什么」。
事实档位标注约定:【已确认】=有实测证据;【未验证】=说法未经证实;【待决策】=尚无定论。
历史过程、实验细节、脚本源码、证据片段一律不放本文件,归 vnc-server-deploy/docs/SOP.md。
2. 当前状态与在做什么¶
一句话:hpc-submit(192.168.31.28)的 TigerVNC 多用户远程桌面已上线并验证通过,9 个 LDAP 用户全部可用;桌面锁屏治理已闭环(9 用户全覆盖,策略由部署工程交付),本主题无进行中的工作项。
本轮(2026-09-27)完成:在 hpc-submit 部署 TigerVNC 1.15 + Xfce4 多用户 VNC,按 EDA 行业标准的系统级 vncserver@.service 模板 + 静态 display 映射模型实现;配套 LDAP 增量同步器与 systemd 定时器,新用户自动接入。
| 关键事实 | 值 |
|---|---|
| 端口↔用户 | :1=5901 rain01、:2=5902 rain02、:3=5903 rain03、:4=5904 cloud01、:5=5905 cy01、:6=5906 david01、:7=5907 lws01、:8=5908 cq01、:9=5909 ldapadmin 【已确认】 |
| VNC 密码规则 | <user>@<port>,VncAuth 只取前 8 字符(如 cy01 → cy01@5905 实际生效 cy01@590)【已确认】 |
| 监听方式 | 0.0.0.0:590N 内网直连,未加 localhost 限制【已确认】 |
| 桌面环境 | Xfce4(session=xfce),分辨率 1920x1080 depth 24,alwaysshared【已确认】 |
| 开机自启 | 9 个 vncserver@:N.service 均 enabled【已确认】 |
| LDAP 新用户 | vnc-ldap-sync.timer 每 10 分钟增量同步,自动分配下一空闲端口、建家目录、生成密码、启服务【已确认】 |
| 幂等 | 重复执行第二次「变更 0 项,全部已就绪」【已确认】 |
| 端到端 | 端口握手返回 RFB 003.008;Xfce 会话进程正常【已确认】 |
| 会话崩溃恢复 | 崩溃后服务静默变 inactive(非 failed);残留锁文件不阻挡重启;靠 sync timer 自愈(延迟 ≤10 min),或人工 systemctl restart 秒级恢复【已确认】 |
| 资源占用 | 9 会话约 1.3 GB(Xvnc 820 MB + xfce4-session 515 MB),可用内存 12.6 GB【已确认】 |
| 家目录 | 6 个 LDAP 用户(rain02/rain03/cloud01/david01/lws01/cq01)家目录由本次部署新建【已确认】 |
| 桌面锁屏 | 9 个用户的屏保与空闲锁屏均已关闭(/saver/enabled、/lock/enabled 均 false);部署工程已交付系统级默认,新用户与新会话默认不锁屏【已确认】 |
3. 未完成事项¶
| # | 事项 | 下一步 | 在哪能拾起 |
|---|---|---|---|
| 1 | 人工端到端确认:仅完成协议层握手与进程级验证,未用图形客户端实际登录过 | 用 VNC Viewer 连 192.168.31.28:5905,用户 cy01,密码 cy01@5905,确认看到 Xfce 桌面 |
结果记入 vnc-server-deploy/docs/SOP.md 第 6.3 节 |
| 2 | 回滚未实际演练:回滚路径仅设计验证,未真跑 | 业务低峰期执行一次 python3 deployer.py rollback --force 后再部署回来 |
RUNBOOK 第 6 章「演练记录」 |
| 3 | firewalld 当前 inactive:若日后启用,VNC 将全部不可达 | 启用时先放行 firewall-cmd --add-port=5901-5909/tcp --permanent && firewall-cmd --reload |
SOP 第 4 章影响范围 |
| 4 | SELinux 当前 Permissive:切 Enforcing 后 ~/.vnc 上下文可能不匹配 |
切换前批量 restorecon -RFv /home/<user>/.vnc |
RUNBOOK 第 8.6 场景 |
| 5 | 内网明文口令风险【待决策】:密码规则可预测、VncAuth 强度弱 | 如需加固,切 SSH 隧道模式(append localhost 到 defaults 后重启会话) |
RUNBOOK 第 9 章 |
| 6 | LDAP 绑定口令已存在于 /etc/sssd/sssd.conf:本次未新增凭据文件,但同步器依赖该文件 |
轮换时改该文件 → systemctl restart sssd → 触发一次同步验证 |
RUNBOOK 第 9 章「轮换」 |
| 7 | 会话崩溃自愈有最长 10 分钟延迟【待决策】:单元无 Restart=,且 vncsession 崩溃时退出码为 0,on-failure 类策略也不会触发 |
若需秒级自愈,用 drop-in 加 Restart=always;副作用是用户主动 logout 后会被立即拉起,需权衡 |
SOP 第 8 章风险表、RUNBOOK 第 8.7 场景 |
| 8 | rain01 的 LDAP 账户口令仍处遗忘状态:本次只绕过锁屏,未重置口令;日后 sudo、登录其它节点仍会受阻 |
由 LDAP 管理员在目录侧重置(ldappasswd / ipa passwd rain01),本机 root 无法代办 |
RUNBOOK 第 8.8 场景、SOP 第 9.1 节 |
4. 红线与命令速查¶
红线(禁止操作)
- 不要手工编辑
/etc/tigervnc/vncserver.users—— 由vnc-ldap-sync维护;手工删行会导致该用户被重新分配新端口,密码规则随之变化。要排除某用户,改/etc/vnc-ldap-sync.conf的exclude_users。 - display 号不回收、不重排 —— 密码内嵌端口,重排会使全部密码失效。
stop/restart会话会终止该用户桌面进程 —— 未保存的 EDA 设计工作会丢失,操作前须确认用户知情。- 不删除 6 个新建的用户家目录 —— 已归用户使用,不可逆。
- 不手工改
/etc/sssd/sssd.conf的 LDAP 连接段 —— 影响全节点认证。 - 部署类变更走
deployer.py(幂等 + 备份 + 回滚),不要手工覆盖/etc/tigervnc/配置。
命令速查(在目标机以 root 执行)
/usr/local/sbin/vnc-ldap-sync status # 全量状态总览(预期全 done)
cat /etc/tigervnc/vncserver.users # display -> user 映射
systemctl status vncserver@:5.service --no-pager # 单个会话
systemctl restart vncserver@:5.service # 重启单会话(会中断用户桌面)
systemctl start vnc-ldap-sync.service # 立即同步 LDAP 新用户
ss -tlnp | grep -E ':59[0-9][0-9]' # 端口监听
tail -50 /home/cy01/.vnc/hpc-submit:5.log # 会话日志
journalctl -u vnc-ldap-sync.service -n 30 --no-pager # 同步器日志
部署侧(本地工程目录 vnc-server-deploy/):
python3 deployer.py precheck # 只读环境预检查
python3 deployer.py drift # 只读漂移检测(0 无漂移 / 1 有漂移 / 2 探测失败)
python3 deployer.py verify # 只读后置验证
python3 deployer.py deploy # 部署(幂等;--dry-run 预演)
5. 文档地图¶
| 文件 | 管什么 |
|---|---|
vnc-server-deploy/docs/RUNBOOK.md |
服务日常使用与排障:速查表、配置管理、备份恢复、故障处置场景、安全加固、容量水位 |
vnc-server-deploy/docs/SOP.md |
本次变更的完整档案:背景、目标、影响范围、分步操作、验证、回滚、风险、决策记录与实测证据 |
vnc-server-deploy/backup/README.md |
备份台账:每个备份文件的原路径、产生原因、回滚动作、可删时机 |
vnc-server-deploy/deployer.py |
部署编排器(precheck / plan / deploy / verify / drift / rollback) |
vnc-server-deploy/assets/vnc-ldap-sync |
用户同步器源码(落地到 /usr/local/sbin/vnc-ldap-sync) |
vnc-server-deploy/assets/xfce4-screensaver.xml |
Xfce 系统级锁屏策略模板(禁用屏保与空闲锁屏,落地到 /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/) |
vnc-server-deploy/config/defaults.yaml、site.yaml |
配置分层:基线 + 站点覆盖(LDAP 凭据不在此,取自 /etc/sssd/sssd.conf) |
来源:
/home/rain/Documents/services/vncserver/docs/HANDOFF.md| 最后更新:2026-09-27 17:43(由build/sync.py同步,请勿在站点侧修改)