# Scripts 总览 本目录集中维护通用运维脚本。统一约定:**在仓库根目录执行**,使用 `./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`)按需打开 - `scripts/cloudflare-delete-acme-challenge-dns.sh` - 批量删除 Cloudflare 中 `_acme-challenge` 相关 DNS 记录(ACME 残留);环境变量或脚本内 `DEFAULT_*` 配置二选一,环境变量优先;`--dry-run` 仅列出不删除 - `scripts/ssh/setup-k3s-workers-ssh.sh` - 为 Ansible 自动化准备 SSH:为所有 k3s 节点配置 jack + root 公钥及每节点私钥(配合 `docs/01-06-节点初始化-ansible-实践.md`) - `scripts/ssh/test-ssh.sh` - 验证 worker/client SSH key 登录与 sudo 可用性 ## 从仓库根执行示例 ```bash # 1) 初始化 worker SSH 密钥(可选) ./scripts/ssh/setup-k3s-workers-ssh.sh # 2) 验证 SSH(建议) ./scripts/ssh/test-ssh.sh # 3) 执行批量部署/配置(示例) cd ansible ansible-playbook -i inventory.ini playbooks/k3s-init-and-install.yml ``` ## 说明文档 - 主文档入口详见 `docs/00-00-构建总览.md`