mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 23:00:44 +00:00
修上一轮清理留下的副作用:占位符把运维脚本弄连不上了
上一个提交把仓库里的服务器 IP 换成了占位符,但**那些脚本本身要用这个 IP
去连服务器** —— 换掉之后它们就跑不起来了。这个提交把取值方式理清楚。
== 取值统一走 _build/lssh.py ==
YKXMZ_LS_HOST 环境变量
或 _build/.lightsail_host(一行 IP,已 gitignore)
都没有就报错,并告诉你怎么设
十个运维脚本改成 `from lssh import ... HOST as LS_HOST`,
公开仓库里一个具体地址都不留。
== 顺带修的两个自己造的 bug ==
* 用正则往 `from lssh import ...` 后面追加东西时,
追加到了行尾的 `# noqa: E402` **注释里面** ——
十处导入全是废的,脚本一跑就 NameError。
改成先剥掉注释、拼好导入、再把 noqa 加回去。
* 同一个正则还把 `from lssh import HOST as LS_HOST` 加进了
**lssh.py 自己**,造成自我导入。
教训:**正则批量改导入语句很危险**(注释、行尾、顺序都能坑到),
这种地方宁可逐个 edit。
== 为什么要重建产物 ==
docs/AFTER-INSTALL.txt 会被打进服务端 zip,而它上一轮改过
(去掉了写死的旧管理员密码)—— 不重打的话发出去的还是旧的。
重打后确认:三个产物里都没有旧密码、没有服务器 IP。
== 验证 ==
全量回归退出码 0,41 个阶段全 PASS
603 个 Python 文件语法通过
ykxmz-agent / server / watch 三个产物扫描干净
提交前泄漏闸门通过
This commit is contained in:
+25
-1
@@ -23,7 +23,31 @@ from pathlib import Path
|
||||
|
||||
import paramiko
|
||||
|
||||
HOST = os.environ.get("YKXMZ_LS_HOST", "<源站IP>")
|
||||
|
||||
def _host() -> str:
|
||||
"""服务器公网 IP —— **不写死在代码里**。
|
||||
|
||||
这个仓库是公开的。IP 写进来等于把源站地址告诉所有人,
|
||||
而源站躲在 Cloudflare 后面本来就不该被知道(直接打 IP 就绕过 CDN
|
||||
和防护了)。2026-10-08 就因为 IP 泄漏返工过一次。
|
||||
|
||||
取值顺序:
|
||||
1. 环境变量 YKXMZ_LS_HOST
|
||||
2. _build/.lightsail_host(一行 IP,已 gitignore)
|
||||
"""
|
||||
env = os.environ.get("YKXMZ_LS_HOST", "").strip()
|
||||
if env:
|
||||
return env
|
||||
f = Path(__file__).resolve().parent / ".lightsail_host"
|
||||
if f.is_file():
|
||||
return f.read_text(encoding="utf-8").strip()
|
||||
raise SystemExit(
|
||||
"没拿到服务器地址。二选一:\n"
|
||||
" set YKXMZ_LS_HOST=<你的服务器IP>\n"
|
||||
" 或把 IP 写进 _build/.lightsail_host(该文件已在 .gitignore 里)")
|
||||
|
||||
|
||||
HOST = _host()
|
||||
USER = os.environ.get("YKXMZ_LS_USER", "admin")
|
||||
PORT = int(os.environ.get("YKXMZ_LS_PORT", "22"))
|
||||
KEY = Path(os.environ.get(
|
||||
|
||||
Reference in New Issue
Block a user