Files
Deploy-Laboratory/scripts/README.md
jack 231b6713c4 chore: 对齐 00-05 §2 的部署与验证脚本
- 新增 deploy-lab.sh(k3s/longhorn/nginx 铺栈)与 ssh/run-phase2-k3s-on-ylc61-as-jack.sh
- verify.sh:flow/preflight、VERIFY_TEARDOWN 默认、注释与 §2 对应
- 更新 smoke-verify、README、.env.verify.example、根 README 与主要 playbook 头注释
- k3s-delete-lab-stacks 标明重度清场语义

Made-with: Cursor
2026-03-26 07:32:08 +08:00

86 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Scripts 总览
本目录集中维护通用运维脚本。约定:**在仓库根目录执行**,使用 `./scripts/...` 路径调用。
流程说明与「部署 / 验证」分工以 [`docs/00-05-测试与验证框架.md`](../docs/00-05-测试与验证框架.md) **§2 自动化验证流程** 为准;下表与之一一对应。
| §2 步骤 | 含义 | 本仓库入口 |
|--------|------|------------|
| 1 接入 | inventory、仓库同步、加载 `.env.verify` | 手工;`verify.sh` / `deploy-lab.sh` 会自动 `source scripts/.env.verify`(若存在) |
| 2 环境/清理 | 轻量:各 verify 的 teardown重度清实验负载 / 重装 K3s | 轻量:`VERIFY_TEARDOWN`(默认 1重度`k3s-delete-lab-stacks.sh`、文档中的 `k3s-uninstall`**勿**默认进 `run-all` |
| 3 部署 | K3s、Longhorn、nginx 矩阵等铺栈 | **`./scripts/deploy-lab.sh`**`k3s` / `longhorn` / `nginx-matrix` / `nginx-matrix-tls` |
| 45 断言与收尾 | 按 doc 目标 kubectl/curl本篇 teardown | **`./scripts/verify.sh`** `run` / `run-all` |
| 6 一键串联 | 按矩阵顺序跑全部 verify | **`./scripts/verify.sh run-all`** |
辅助命令:
- `./scripts/verify.sh flow` — 打印与 §2 对齐的流程说明(不接 Ansible
- `./scripts/verify.sh preflight` — 检查 `ansible-playbook`、矩阵、`inventory`,并对 `k3s_server` 执行 `ping`;若已装集群可设 `VERIFY_PREFLIGHT_CLUSTER=1` 再执行 `kubectl get nodes`
## 验证编排环境变量(可选)
复制 [`scripts/.env.verify.example`](.env.verify.example) 为 `scripts/.env.verify` 并填写本机值;**勿提交** `scripts/.env.verify`(已在仓库 `.gitignore` 中忽略)。
其中 **`ONECLOUD_SSH`** 用于矩阵里**集群外**第三方 curl 等;**`ARMV7_SSH` / `ARMV7_NFS_SSH`** 用于 `01-03` / `01-05` 实机;**`ACME_EMAIL`** 供 Traefik ACME`03-02` / `03-03`);另有 **`VERIFY_TLS_HOSTS`**、`K3S_SERVER_HOSTNAME``TIMEOUT_SEC``LONGHORN_NAMESPACE` 等,完整列表见 [`.env.verify.example`](.env.verify.example) 文末注释。
```bash
set -a && source scripts/.env.verify && set +a
```
## 部署 K3s推荐在控制节点或 Linux 工作机)
1. 在仓库根(或 `cd ansible` 后改用相对路径)执行 **`./scripts/deploy-lab.sh k3s`**。若需先准备数据盘,在 **本机或 `.env.verify`** 中设 `K3S_PREPARE_STORAGE=true`(会传 `-e k3s_prepare_storage=true``k3s-prepare-storage.yml`)。
2. 办公机无 Ansible 时,可 SSH 到 ylc61 再执行上述命令,或使用:
```bash
export K3S_PREPARE_STORAGE=false # 或 true
./scripts/ssh/run-phase2-k3s-on-ylc61-as-jack.sh
```
环境变量 **`LAB_REPO_ROOT`**(仅 SSH 包装脚本使用)可指定远端仓库路径,默认 `/home/jack/实验室建设`
**密钥与执行用户**`inventory.ini` 中私钥路径随执行用户变化;在 ylc61 上以 `jack` 执行可避免解析到 `/root/.ssh/`
## 验证矩阵run-all / 抽样 smoke
```bash
./scripts/verify.sh preflight
export nginx_entry_base=http://192.168.2.61
./scripts/verify.sh run-all
```
从办公机经 SSH 在远端仓库根跑抽样用例:
```bash
./scripts/ssh/smoke-verify-matrix-on-ylc61.sh
```
可用 **`VERIFY_REPO_ROOT`** 指定远端路径(默认 `/home/jack/实验室建设`)。
## 目录与脚本对照
- **`verify.sh`** — 矩阵验收:`flow` / `preflight` / `list` / `run` / `run-all`
- **`deploy-lab.sh`** — 安装/铺栈:`k3s` / `longhorn` / `nginx-matrix` / `nginx-matrix-tls`
- **`ssh/run-phase2-k3s-on-ylc61-as-jack.sh`** — 办公机触发远端 `deploy-lab.sh k3s`
- **`ssh/smoke-verify-matrix-on-ylc61.sh`** — 办公机触发远端若干 `verify.sh run`
- **`k3s-delete-lab-stacks.sh`** — 按 kubectl 实况清命名空间负载(重度清场,非默认 teardown
- **`cloudflare-delete-acme-challenge-dns.sh`** — 清理 CF 上 `_acme-challenge` DNS
- **`ssh/setup-k3s-workers-ssh.sh`** — 为 K3s 节点预配 SSH配合 `01-06`
- **`ssh/test-ssh.sh`** — 验证 worker 密钥登录与 sudo
## 从仓库根执行示例
```bash
./scripts/ssh/setup-k3s-workers-ssh.sh
./scripts/ssh/test-ssh.sh
./scripts/deploy-lab.sh k3s
./scripts/verify.sh preflight
./scripts/verify.sh run 02-05
```
## 说明文档
- 验证框架:[`docs/00-05-测试与验证框架.md`](../docs/00-05-测试与验证框架.md)
- 验证矩阵状态:[`docs/00-02-验证矩阵.md`](../docs/00-02-验证矩阵.md)
- 主文档入口:`docs/00-00-构建总览.md`(若存在)