Files
2026-03-29 09:08:01 +08:00

6.2 KiB
Raw Permalink Blame History

Scripts 总览

本目录仅保留人工运维脚本。Ansible 执行入口已迁移到 ansible/bin/

流程说明与「部署 / 验证」分工以 docs/00-03-测试与验证框架.md §2 自动化验证流程 为准;验证前准备清单见同文档 §10

§2 步骤 含义 本仓库入口
1 接入 inventory、仓库同步、加载 .env.verify 手工;ansible/bin/verify.sh / ansible/bin/deploy-lab.sh 会自动 source ansible/env/.env.verify(若存在)
2 环境/清理 轻量:各 verify 的 teardown重度清实验负载 / 重装 K3s 轻量:VERIFY_TEARDOWN(默认 1重度k3s-delete-lab-stacks.sh、文档中的 k3s-uninstall默认进 run-all
3 部署 K3s、Longhorn、nginx 矩阵等铺栈 ./ansible/bin/deploy-lab.shk3s / longhorn / nginx-matrix / nginx-matrix-tls
45 断言与收尾 按 doc 目标 kubectl/curl本篇 teardown ./ansible/bin/verify.sh run / run-all;简写 ./scripts/cs <XX-YY>(与 run <XX-YY> 完全等价,覆盖 verify/ 下全部执行域 doc_id
6 一键串联 按 doc_id 顺序跑全部 verify可先 preflight ./ansible/bin/verify.sh full(推荐,= preflight + run-all./ansible/bin/verify.sh run-all

真机一键验收(可选先铺栈再全量验收):

  • ./scripts/acceptance.sh:可选先执行 deploy-lab.sh(由环境变量开关),再执行 verify.sh full

辅助命令:

  • ./ansible/bin/scaffold-doc-id.sh <XX-YY> <slug> [--title ...] — 新建执行域最小闭环:docs/<XX-YY>-<slug>.mdansible/files/<XX-YY>/ansible/playbooks/verify/<XX-YY>.yml(默认含 verify_common noop 基线)。可加 --dry-run / --force
  • ./ansible/bin/verify.sh flow — 打印与 §2 对齐的流程说明(不接 Ansible
  • ./ansible/bin/verify.sh preflight — 检查 ansible-playbookinventory,并对 k3s_server 执行 ping;若已装集群可设 VERIFY_PREFLIGHT_CLUSTER=1 再执行 kubectl get nodes
  • ./ansible/bin/verify.sh list --series 04 --exclude-noop — 支持按主序列与 noop 过滤查看执行集合。

验证编排环境变量(可选)

复制 ansible/env/.env.verify.exampleansible/env/.env.verify 并填写本机值;勿提交 ansible/env/.env.verify(已在仓库 .gitignore 中忽略)。

其中 WORKSTATION_SSH 用于在 Linux 工作机(推荐 ylc65,见 docs/00-02)等 非 k3s 节点 上执行集群外 curlSKIP_ARMV7 / ARMV7_SSH / ARMV7_NFS_SSH(及 01-04 的 ARMV7_NFS_EXPORT_PATHARMV7_NFS_CLIENT_SUBNET)由 playbook 通过环境变量读取:SKIP_ARMV7=1(默认)时 01-03/01-04 仅基线检查;SKIP_ARMV7=0 且 SSH 已配置 时会对 arm 主机执行 dnf 路径Fedora/RHEL 系,见 docs/00-03-测试与验证框架.md §10.EACME_EMAIL 供 Traefik ACME03-02 / 03-03);另有 VERIFY_TLS_HOSTSK3S_SERVER_HOSTNAMETIMEOUT_SECLONGHORN_NAMESPACE 等,完整列表见 ansible/env/.env.verify.example 文末注释。

set -a && source ansible/env/.env.verify && set +a

部署 K3s推荐在控制节点或 Linux 工作机)

在仓库根(或 cd ansible 后改用相对路径)执行 ./ansible/bin/deploy-lab.sh k3s。若需先准备数据盘,在 本机或 .env.verify 中设 K3S_PREPARE_STORAGE=true(会传 -e k3s_prepare_storage=trueansible/playbooks/verify/01-05.yml)。

密钥与执行用户inventory.ini 中私钥路径随执行用户变化;在目标节点上以非 root 用户执行时,注意私钥路径与 ansible_user 与文档一致。

验证run-all / full

推荐一行(在仓库根;需已安装 Ansible、ansible/inventory.ini 可达、k3s_server 可 ping集群与入口变量已按 00-02-部署环境说明.md.env.verify 配好):

./ansible/bin/verify.sh full

full = preflight + run-all。若 nginx_entry_basenodejs_entry_base 等未写入 ansible/env/.env.verify,可先 export nginx_entry_base=http://<入口IP> 再执行。仅跑用例、跳过 preflight 时用 ./ansible/bin/verify.sh run-alllist/run-all/full 均支持筛选参数:--series <XX>--id-regex <regex>--exclude-noop--require-teardown

将准备项NFS、ACME、armv7、noop 文档等)补齐后再推进“已验证”,见 docs/00-03-测试与验证框架.md §10 验证前准备清单

等价多行写法(与 full 相同):

./ansible/bin/verify.sh preflight
export nginx_entry_base=http://192.168.2.61
./ansible/bin/verify.sh run-all

目录与脚本对照

  • verify.sh — doc_id 验收:flow / preflight / full / list / run / run-all
  • cs — 单篇验收简写:./scripts/cs <XX-YY>verify.sh run <XX-YY>(任意执行域 doc_id 通用,非 50 个独立脚本)
  • deploy-lab.sh — 安装/铺栈:k3s / longhorn / nginx-matrix / nginx-matrix-tls
  • 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-05
  • ssh/test-ssh.sh — 验证 worker 密钥登录与 sudo

从仓库根执行示例

./scripts/ssh/setup-k3s-workers-ssh.sh
./scripts/ssh/test-ssh.sh
./scripts/offline-check.sh
./ansible/bin/deploy-lab.sh k3s
./ansible/bin/verify.sh preflight
./ansible/bin/verify.sh run 02-05
./scripts/cs 02-05

说明文档