Files
Deploy-Laboratory/scripts/README.md
jack 8c43761962 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
2026-03-26 07:01:14 +08:00

71 lines
3.7 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/...` 路径调用。
## 验证编排环境变量(可选)
复制 [`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`