129 lines
7.1 KiB
Plaintext
129 lines
7.1 KiB
Plaintext
# 验证矩阵 / 编排脚本用环境变量模板(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
|