# 验证矩阵 / 编排脚本用环境变量模板(example) # --------------------------------------------------------------------------- # 约定:本文件只写“值”(KEY=VALUE),不写默认展开/命令替换等执行逻辑。 # # 使用(必须在仓库根目录执行): # cp ansible/env/.env.verify.example ansible/env/.env.verify # set -a && source ansible/env/.env.verify && set +a # --------------------------------------------------------------------------- # ========================= # 1) 你只需要改这一段(值) # ========================= # --- SSH --- # K3S_SSH_KEY_DIR:存放 ssh key 的目录 K3S_SSH_KEY_DIR=$HOME/.ssh # K3S_SSH_KEY_PREFIX:key 前缀(脚本会按此前缀拼接具体节点 key) K3S_SSH_KEY_PREFIX=id_ed25519_k3s_ # SSH_USER:ssh 登录用户名 SSH_USER=jack # TIMEOUT_SEC:常用探测/连接超时时间(秒) TIMEOUT_SEC=5 # --- Ansible(控制端)--- # ANSIBLE_INVENTORY:inventory 路径(相对仓库根);一般无需改 ANSIBLE_INVENTORY=ansible/inventory.ini # ANSIBLE_LOCAL_TMP:可选;控制端无法写 ~/.ansible 时设为仓库内路径,如 $PWD/.ansible-tmp(见 docs/00-03) # --- 01-01 / 01-02:集群、kubectl 与 data-dir(k3s,共用)--- # docs/01-01(控制面)与 docs/01-02(工作节点加入)共用此二项:K3S_SERVER_HOSTNAME = 控制面短主机名(inventory 中 k3s_server,01-02 手工 K3S_URL 指向该节点 6443);K3S_DATA_DIR = 各节点一致的 k3s --data-dir(与 group_vars k3s_data_dir 一致)。verify/01-01 以节点 kubeconfig 为准,playbook 不强制从 env 读此二项。 K3S_SERVER_HOSTNAME=ylc61 K3S_DATA_DIR=/storage # --- 01-03 / 01-04 armv7(docs/01-03、01-04;docs/00-03 §10.E)--- # (可选)SKIP_ARMV7:默认 1 时 verify/01-03、01-04 仅矩阵基线;0 时须配 ARMV7_SSH 等并由 playbook lookup SKIP_ARMV7=1 # 01-03:SKIP_ARMV7=0 时需 ARMV7_SSH;verify 调用 ansible/tools/armv7-docker-verify-install.sh(先 docker info,失败再 get.docker.com)。 # 01-04:SKIP_ARMV7=0 时需 ARMV7_NFS_SSH(或同机);ARMV7_NFS_EXPORT_PATH、ARMV7_NFS_CLIENT_SUBNET 见 verify/01-04.yml ARMV7_SSH=YOUR_ARMV7_SSH ARMV7_NFS_SSH=YOUR_ARMV7_NFS_SSH ARMV7_NFS_EXPORT_PATH=/sdcard ARMV7_NFS_CLIENT_SUBNET=192.168.2.0/24 # --- 01-05(docs/01-05:节点初始化与 k3s 安装)--- # K3S_PREPARE_STORAGE:deploy-lab.sh k3s 是否在首段跑「准备数据盘」(ansible/bin/deploy-lab.sh 读此变量) # K3S_DO_PREPARE_STORAGE / K3S_DO_INSTALL:verify/01-05.yml 从环境读取(与 ansible-playbook -e 等价)。真正分区还须 group_vars k3s_prepare_storage: true 且 k3s_data_disk_device=/dev/xxx K3S_PREPARE_STORAGE=false K3S_DO_PREPARE_STORAGE=false K3S_DO_INSTALL=false # k3s 安装脚本镜像/超时:在 ansible/group_vars/all.yml 设 k3s_install_mirror: cn、k3s_install_curl_max_time 等(非本 env 变量);或 ansible-playbook … -e k3s_install_mirror=cn # --- deploy-lab.sh(铺栈,docs/00-03 / project-context)--- # DEPLOY_VERIFY_TEARDOWN:deploy-lab 传入 playbook 的 VERIFY_TEARDOWN,默认 0(保留已部署资源) DEPLOY_VERIFY_TEARDOWN=0 # --- 01-06 集群外探测 SSH(docs/01-06、00-03)--- # WORKSTATION_SSH:在 **Linux 工作机**上执行集群外 curl 等的一行 ssh(示例 ylc65,见 docs/00-02);可改为 user@<你的工作机主机名>。含空格必须加引号。(旧名 ONECLOUD_SSH 已弃用) WORKSTATION_SSH="ssh -o BatchMode=yes jack@ylc65" # --- 验证入口与 preflight(02-xx / 04-xx 共用)--- # nginx_entry_base、nodejs_entry_base:HTTP 验证入口基址(按 ingress/负载均衡填写)。nginx 矩阵(02-01~02-04)为集群内临时 Pod 直连 nginx-mX.default.svc。 # VERIFY_TEARDOWN:verify.sh 默认 1(清理现场);调试可设 0(保留现场,可能污染后续用例) VERIFY_TEARDOWN=1 # VERIFY_PREFLIGHT_CLUSTER:默认 0(离线/轻量 preflight);设 1 时 preflight 在控制节点执行 kubectl get nodes(见 docs/00-03) VERIFY_PREFLIGHT_CLUSTER=0 nginx_entry_base=http://192.168.2.61 nodejs_entry_base=http://192.168.2.61 # --- 03-08 k3s HA(可选·预留)--- # (可选)SKIP_HA:当前 verify playbook 未 lookup;仅与 docs/03-08 及 HA 类备忘对齐 SKIP_HA=1 # --- 03-09 GitOps(可选·预留)--- # (可选)SKIP_GITOPS:当前 verify playbook 未 lookup;仅与 docs/03-09 备忘对齐 SKIP_GITOPS=1 # --- Cloudflare(CF API / Zone)--- # 03-02 / 03-03:ACME DNS-01 需 CF_API_TOKEN;ZONE_* 为手工/Token 校验辅助,preflight 不强门禁(verify.sh 注释) # CF_API_TOKEN:Cloudflare API Token(敏感信息) CF_API_TOKEN=YOUR_CF_API_TOKEN # ZONE_NAME / ZONE_ID:Cloudflare Zone 信息(可选;预留,playbook 未 lookup) ZONE_NAME=jackadam.top ZONE_ID=YOUR_ZONE_ID # --- 03-02 / 03-03 ACME 与 Traefik --- # 03-02 / 03-03:ACME_EMAIL 为 Let's Encrypt 注册邮箱(verify 必填)。ACME_CA_STAGING=1 使用 staging CA。 # TRAEFIK_NAMESPACE:预留(playbook 中 Traefik 固定 kube-system,未读此 env) ACME_EMAIL=you@example.com ACME_CA_STAGING=0 TRAEFIK_NAMESPACE=kube-system # TRAEFIK_DASHBOARD_VERIFY_URL:03-03 验收 Dashboard HTTP 探针完整 URL(可选;未设则按 k3s_server_ip/dashboard/) # TRAEFIK_DASHBOARD_VERIFY_URL=http://192.168.2.61/dashboard/ # --- TLS 域名(预留)--- # VERIFY_TLS_HOSTS:手工 openssl/curl 对照用;03-02 TLS 矩阵域名为清单内嵌,playbook 未读此变量 VERIFY_TLS_HOSTS=test01.jackadam.top,test02.jackadam.top,test03.jackadam.top,test04.jackadam.top # --- 03-02(nginx 矩阵 TLS 可选)--- # 03-02:NGINX_MATRIX_TLS_ENABLE=true 时部署 TLS+HTTP nginx 矩阵(改 default;与 deploy-lab.sh nginx-matrix-tls 一致)。 NGINX_MATRIX_TLS_ENABLE=false # --- 03-04 Cloudflare Tunnel(docs/03-04)--- # HTTPS 探针需 CF_TUNNEL_TEST_URL 或 CF_TUNNEL_TEST_HOST(二选一;皆缺则 [GATE])。TUNNEL_TOKEN 与集群 kube-system Secret cloudflared-credentials 二选一。 TUNNEL_TOKEN=YOUR_TUNNEL_TOKEN # CF_TUNNEL_TEST_URL=https://your-tunnel-host.example.com/ CF_TUNNEL_TEST_HOST=traefik.jackadam.top # CF_TUNNEL_CURL_INSECURE=1 — 03-04 探针 curl 使用 -k(排障用) # --- 03-05 --- # 03-05:LOCAL_PATH_APPLY_LAB_CONFIG=true 时注入 local-path lab ConfigMap 并 rollout restart provisioner。 LOCAL_PATH_APPLY_LAB_CONFIG=false # --- NFS(docs/03-06)--- # verify/03-06.yml:NFS_SERVER_IP + NFS_EXPORT_PATH 均非空才跑 PV/PVC + Job;任一为空则 [GATE]。NFS_SERVER_HOST 仅与文档/运维备注对齐,playbook 不读取。 NFS_SERVER_HOST=onecloud NFS_SERVER_IP=onecloud NFS_EXPORT_PATH=/export/k3s # --- Longhorn(预留)--- # LONGHORN_NAMESPACE:与 docs/03-07 叙述对齐;命名空间以 playbook/group_vars 为准,当前 verify 未 lookup 此键 LONGHORN_NAMESPACE=longhorn-system # --- 04-07 / 04-12 NodeJS TLS(docs/04-12、00-03)--- # 04-12:NODEJS_TLS_ENTRY_BASE + NODEJS_TLS_HOST 时跑 tls-openssl-sni + HTTPS 断言;无 Secret 时可 CREATE_NODEJS_DEMO_TLS_SECRET=1 自签。 # NODEJS_TLS_ENTRY_BASE=https://192.168.2.61:443 # NODEJS_TLS_HOST=app.example.local # CREATE_NODEJS_DEMO_TLS_SECRET=1 # NODEJS_TLS_CURL_INSECURE=1