- 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
71 lines
3.7 KiB
Markdown
71 lines
3.7 KiB
Markdown
# 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`
|