115 lines
7.3 KiB
Plaintext
115 lines
7.3 KiB
Plaintext
# 验证 / 编排脚本用环境变量模板
|
||
# ---------------------------------------------------------------------------
|
||
# 各变量与「未验证 / 部分验证」文档的对应关系、缺省时的行为,见 docs/00-07-待验证项-验证前准备.md
|
||
# 使用:复制为本目录下的 .env.verify(勿提交 Git),在仓库根执行:
|
||
# set -a && source scripts/.env.verify && set +a
|
||
# 或在 bash 中:source scripts/.env.verify
|
||
# 仅示例占位,请把 YOUR_* 换成真实值;密钥只留在本机 .env.verify。
|
||
# ---------------------------------------------------------------------------
|
||
|
||
# --- 集群与 kubectl ---
|
||
# 在控制节点本机跑 kubectl 时常用:
|
||
# export KUBECONFIG="${KUBECONFIG:-/etc/rancher/k3s/k3s.yaml}"
|
||
# 若在办公机通过 SSH 在远端执行 kubectl,可设为:
|
||
# export K3S_CONTROL_SSH="ssh -o BatchMode=yes ylc61"
|
||
# export REMOTE_KUBECONFIG="/etc/rancher/k3s/k3s.yaml"
|
||
# 在控制节点本机执行 kubectl 时,避免再次经 SSH 自环(可按需保留):
|
||
# export VERIFY_FORCE_LOCAL_KUBECTL=1
|
||
# 经 SSH 在控制节点执行 kubectl 时:若 PATH 中无 kubectl,可设 REMOTE_KUBECTL="k3s kubectl"
|
||
# export REMOTE_KUBECTL="k3s kubectl"
|
||
# 控制节点短主机名(与 inventory 一致;编排里拼 URL/SSH 用)
|
||
export K3S_SERVER_HOSTNAME="${K3S_SERVER_HOSTNAME:-ylc61}"
|
||
# 与 ansible group_vars 一致,验证磁盘/文档 00-04 时引用
|
||
export K3S_DATA_DIR="${K3S_DATA_DIR:-/storage}"
|
||
|
||
# --- Ansible(安装/复验 k3s;对应 docs/00-05 §2 步骤 3)---
|
||
export ANSIBLE_INVENTORY="${ANSIBLE_INVENTORY:-$(pwd)/ansible/inventory.ini}"
|
||
# deploy-lab.sh k3s:为 true 时先在 01-06.yml 内启用准备数据盘(传 -e k3s_do_prepare_storage=true -e k3s_prepare_storage=true;磁盘变量见 group_vars)
|
||
export K3S_PREPARE_STORAGE="${K3S_PREPARE_STORAGE:-false}"
|
||
# 建议在控制节点或 Linux 工作机仓库根执行 deploy-lab.sh
|
||
|
||
# --- SSH 密钥命名(与 scripts/ssh/test-ssh.sh 默认一致;脚本内尚为硬编码路径)---
|
||
# test-ssh 使用:$K3S_SSH_KEY_DIR/${K3S_SSH_KEY_PREFIX}<inventory主机名>
|
||
# 若你改用其他前缀,需同步改 test-ssh.sh 或仅用手工 ssh -i。
|
||
export K3S_SSH_KEY_DIR="${K3S_SSH_KEY_DIR:-$HOME/.ssh}"
|
||
export K3S_SSH_KEY_PREFIX="${K3S_SSH_KEY_PREFIX:-id_ed25519_k3s_}"
|
||
# setup-k3s-workers-ssh.sh 首次登录的非 root 用户名(交互默认 jack)
|
||
export SSH_USER="${SSH_USER:-jack}"
|
||
# test-ssh.sh:连接超时秒数(脚本已支持环境变量 TIMEOUT_SEC)
|
||
export TIMEOUT_SEC="${TIMEOUT_SEC:-5}"
|
||
|
||
# --- 矩阵验证(docs/00-05 §2 步骤 4~6)---
|
||
# ./scripts/verify.sh run | run-all | preflight | full | flow
|
||
# verify.sh 默认 VERIFY_TEARDOWN=1:每篇 playbook 末尾 teardown,再跑下一 doc_id;勿设为 0(资源残留会干扰后续用例)
|
||
export VERIFY_TEARDOWN="${VERIFY_TEARDOWN:-1}"
|
||
# 02-xx / 03-02 等经 Ingress 校验 HTTP;填控制节点或入口 URL(与 inventory 中 k3s_server IP 一致)
|
||
export nginx_entry_base="${nginx_entry_base:-http://192.168.2.61}"
|
||
# VERIFY_PREFLIGHT_CLUSTER(为 1 时 preflight 额外 kubectl get nodes)
|
||
|
||
# --- SSH:第三方验证机 onecloud(不忽略:矩阵里多处依赖「集群外」curl/探测)---
|
||
# 用途示例:02-xx nginx 矩阵从第三方访问 Ingress;01-07 经 onecloud 对 OpenWrt:18080/18443 发 curl;
|
||
# 与 K3s 节点 SSH 无关,但必须能免交互登录(建议 BatchMode + 已知的 IdentityFile)。
|
||
# 编排脚本应始终引用 ONECLOUD_SSH,不要用「本机直接 curl」代替,除非你明确改成本机。
|
||
export ONECLOUD_SSH="${ONECLOUD_SSH:-ssh -o BatchMode=yes onecloud}"
|
||
# 若需显式密钥,可写完整一行,例如:
|
||
# export ONECLOUD_SSH="ssh -o BatchMode=yes -i ~/.ssh/id_ed25519_onecloud onecloud"
|
||
|
||
# --- NFS(03-06):verify playbook 使用 NFS_SERVER_IP / NFS_EXPORT_PATH ---
|
||
export NFS_SERVER_HOST="${NFS_SERVER_HOST:-YOUR_NFS_IP_OR_HOSTNAME}"
|
||
export NFS_SERVER_IP="${NFS_SERVER_IP:-$NFS_SERVER_HOST}"
|
||
export NFS_EXPORT_PATH="${NFS_EXPORT_PATH:-/export/k3s}"
|
||
# export NFS_SSH="ssh -o BatchMode=yes root@${NFS_SERVER_HOST}"
|
||
|
||
# --- Cloudflare(API / Tunnel;与 scripts/cloudflare-delete-acme-challenge-dns.sh 等一致)---
|
||
# DNS 脚本使用:CF_API_TOKEN、ZONE_NAME 或 ZONE_ID
|
||
export CF_API_TOKEN="${CF_API_TOKEN:-}"
|
||
export ZONE_NAME="${ZONE_NAME:-jackadam.top}"
|
||
export ZONE_ID="${ZONE_ID:-}"
|
||
# Tunnel / Dashboard 等若需单独 token,按需增加(勿提交真实值):
|
||
# export CF_TUNNEL_TOKEN=""
|
||
# export CF_ACCOUNT_ID=""
|
||
|
||
# --- ACME / Traefik(03-02、03-03):Let's Encrypt 注册邮箱 ---
|
||
# 与 HelmChartConfig / traefik-acme.yaml 中 <YOUR_REAL_EMAIL> 一致;编排或 sed 替换时引用 ACME_EMAIL。
|
||
export ACME_EMAIL="${ACME_EMAIL:-}"
|
||
# 文档中 traefik-acme 曾用 staging CA 调试;1=使用测试 CA(与 yaml 中 caserver 是否一致自行核对)
|
||
export ACME_CA_STAGING="${ACME_CA_STAGING:-0}"
|
||
export TRAEFIK_NAMESPACE="${TRAEFIK_NAMESPACE:-kube-system}"
|
||
|
||
# --- TLS 验证域名(02-05 / 03-02 矩阵 curl、openssl s_client)---
|
||
# 逗号分隔,与 ZONE_NAME 下实际 DNS 记录一致;勿提交敏感子域若需可只写本机
|
||
export VERIFY_TLS_HOSTS="${VERIFY_TLS_HOSTS:-test01.jackadam.top,test02.jackadam.top,test03.jackadam.top,test04.jackadam.top}"
|
||
|
||
# --- Longhorn(03-07 / ansible verify/stack-longhorn-install)---
|
||
export LONGHORN_NAMESPACE="${LONGHORN_NAMESPACE:-longhorn-system}"
|
||
|
||
# --- 可选跳过(编排占位;当前 verify.sh 未实现 HA/GitOps 门控时可忽略)---
|
||
export SKIP_HA="${SKIP_HA:-1}"
|
||
export SKIP_GITOPS="${SKIP_GITOPS:-1}"
|
||
|
||
# --- armv7 / arm32(01-03 Docker、01-05 NFS、05-02 部分)---
|
||
# 默认 SKIP_ARMV7=1:verify/01-03、01-05 仅跑矩阵基线(文档/文件检查),不经 SSH 改 arm 机。
|
||
# 设 SKIP_ARMV7=0 且 ARMV7_SSH 非空:run 01-03 时经该 SSH 在 arm 上 dnf 装 docker 并校验(假定 Fedora/RHEL 系,见 docs/01-03)。
|
||
# 01-05:同上,但 NFS 所在主机可用 ARMV7_NFS_SSH;未设则回退为 ARMV7_SSH;会写 /etc/exports、exportfs(见 docs/01-05)。
|
||
# export ARMV7_NFS_EXPORT_PATH="/sdcard"
|
||
# export ARMV7_NFS_CLIENT_SUBNET="192.168.2.0/24"
|
||
# verify.sh 在 source .env.verify 后执行 playbook,子进程会继承下列变量(无需 verify.sh 单独传参)。
|
||
export SKIP_ARMV7="${SKIP_ARMV7:-1}"
|
||
export ARMV7_SSH="${ARMV7_SSH:-}"
|
||
export ARMV7_NFS_SSH="${ARMV7_NFS_SSH:-$ARMV7_SSH}"
|
||
|
||
# --- OpenWrt / 01-07(与 K3s 四节点无关时单独用)---
|
||
# export OPENWRT_SSH="ssh -o BatchMode=yes root@192.168.x.x"
|
||
# export OPENWRT_HAPROXY_HTTP_PORT="18080"
|
||
# export OPENWRT_HAPROXY_HTTPS_PORT="18443"
|
||
# 01-07 文档中第三方 curl 用 --https-hosts 时的主机列表(逗号分隔,与 VERIFY_TLS_HOSTS 可相同)
|
||
# export OPENWRT_VERIFY_HTTPS_HOSTS="test01.jackadam.top,..."
|
||
|
||
# --- 与 scripts/*.sh 对照 ---
|
||
# verify.sh → VERIFY_TEARDOWN, VERIFY_PREFLIGHT_CLUSTER, nginx_entry_base, ANSIBLE_INVENTORY;01-03/01-05 另读 SKIP_ARMV7、ARMV7_SSH、ARMV7_NFS_SSH 等(见上文 armv7 段)
|
||
# deploy-lab.sh → ANSIBLE_INVENTORY, K3S_PREPARE_STORAGE
|
||
# cloudflare-delete-acme-challenge-dns.sh → CF_API_TOKEN, ZONE_NAME, ZONE_ID
|
||
# k3s-delete-lab-stacks.sh → KUBECONFIG
|
||
# ssh/test-ssh.sh → TIMEOUT_SEC;密钥路径当前固定为 $HOME/.ssh/id_ed25519_k3s_<host>
|
||
# ssh/setup-k3s-workers-ssh.sh → 交互 inventory + SSH_USER;可选一次性密码勿写入本文件
|