feat: 按 doc_id 重组 ansible/files 与验证框架

- ansible/files 改为与文档 XX-YY 对齐的目录结构,更新相关 playbook 路径
- 新增 scripts/verify.sh 与 ansible/playbooks/verify/*.yml,移除单体 verify-matrix.yml
- 补充 docs/00-02 矩阵状态、00-05 验证框架与流程、00-04 环境与 ylc65 工作机说明
- 增加 k3s 存储准备、Longhorn、local-path 等 playbook 与辅助脚本

Made-with: Cursor
This commit is contained in:
2026-03-26 07:01:14 +08:00
parent a67788de56
commit 8c43761962
192 changed files with 4006 additions and 320 deletions

View File

@@ -2,6 +2,45 @@
本目录集中维护通用运维脚本。统一约定:**在仓库根目录执行**,使用 `./scripts/...` 路径调用。
## 验证编排环境变量(可选)
复制 [`scripts/.env.verify.example`](.env.verify.example) 为 `scripts/.env.verify` 并填写本机值;**勿提交** `scripts/.env.verify`(已在仓库 `.gitignore` 中忽略)。其中 **`ONECLOUD_SSH`**(默认 `ssh … onecloud`)用于矩阵里**集群外**第三方 curl 等验证,与 `SKIP_*` 无关;**`ARMV7_SSH` / `ARMV7_NFS_SSH`** 用于 `01-03` / `01-05` 实机,同样不属「可忽略」项,与 `SKIP_ARMV7=0` 配对使用。**`ACME_EMAIL`** 供 Traefik ACME`03-02` / `03-03`);另有 **`VERIFY_TLS_HOSTS`**、`K3S_SERVER_HOSTNAME``TIMEOUT_SEC``test-ssh.sh` 已读)、`LONGHORN_NAMESPACE` 等,完整列表与「和现有 `scripts/*.sh` 的对照」见 [`.env.verify.example`](.env.verify.example) 文末注释。加载示例:
```bash
set -a && source scripts/.env.verify && set +a
```
## 验证框架状态(自动化已移除)
旧的验证矩阵编排与静态校验 CI 已下线;`docs/00-02-验证矩阵.md` 仍作为“待验证列表/状态记录”,当前以手工验证为准。
如果你要重新落地自动化验证框架,请以设计说明 [`docs/00-05-测试与验证框架.md`](../docs/00-05-测试与验证框架.md) 中的分层与 `doc_id` 映射约定为基线。
### 用 ylc61 跑 Ansible 装 K3s推荐
如果办公机Windows没有 `ansible-playbook`,有两种方式:
1. 方式 A把仓库同步到 `ylc61`,然后在 `ylc61` 上直接跑 playbook
```bash
sudo dnf install -y ansible # Fedora未装过时
cd ~/实验室建设 # 按你实际路径;若在 /home/jack 则相应 cd
cd ansible
# 可选:第二块盘 → /storage 先准备
# ansible-playbook -i inventory.ini playbooks/k3s-prepare-storage.yml
ansible-playbook -i inventory.ini playbooks/k3s-init-and-install.yml
```
2. 方式 B从办公机一键触发内部通过 SSH 在 `ylc61` 上以 `jack` 身份执行)
```bash
# 可选:先准备 /storage
export K3S_PREPARE_STORAGE=false # 或 true
./scripts/ssh/run-phase2-k3s-on-ylc61-as-jack.sh
```
**密钥在 jack**`inventory.ini` 中私钥路径会随执行用户变化。上述方式会确保在 `ylc61``jack` 身份运行,避免把私钥解析到 `/root/.ssh/`
## 目录
- `scripts/k3s-delete-lab-stacks.sh`
- **按集群里实际资源**遍历删除:用 `kubectl get` 枚举各命名空间下的 Deployment/Service/Ingress/IngressRoute 等再 `kubectl delete`**不读仓库 YAML 目录**);默认跳过 `kube-system` 等系统命名空间;`--preview` 只列资源;`--namespaces` 限定 NS`--with-pvc` / `--with-configmaps` / `--with-secrets`(需 `jq`)按需打开