对齐文件规范
This commit is contained in:
@@ -1,25 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# 在办公机执行:经 SSH 在控制节点 ylc61 上跑「K3s 安装/复验」部署流水线。
|
||||
# 对应 docs/00-05 §2 步骤 1(接入)+ 3(部署)中的 k3s 路径;与 verify.sh 矩阵验收分离。
|
||||
#
|
||||
# 依赖:本机可 ssh ylc61(BatchMode);远端仓库路径存在且含 scripts/deploy-lab.sh。
|
||||
set -euo pipefail
|
||||
|
||||
REMOTE_ROOT="${LAB_REPO_ROOT:-/home/jack/实验室建设}"
|
||||
# 将当前 shell 中的 K3S_PREPARE_STORAGE 传到远端(未设置则默认 false)
|
||||
KS_PREP="${K3S_PREPARE_STORAGE:-false}"
|
||||
|
||||
exec ssh -o BatchMode=yes ylc61 bash -lc "
|
||||
set -euo pipefail
|
||||
cd '${REMOTE_ROOT}'
|
||||
chmod +x scripts/deploy-lab.sh 2>/dev/null || true
|
||||
if [[ -f scripts/.env.verify ]]; then
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
source scripts/.env.verify
|
||||
set +a
|
||||
fi
|
||||
# 办公机传入的 K3S_PREPARE_STORAGE 覆盖远端 .env 中的默认
|
||||
export K3S_PREPARE_STORAGE='${KS_PREP}'
|
||||
./scripts/deploy-lab.sh k3s
|
||||
"
|
||||
@@ -1,4 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
# 为 inventory 中 k3s 各节点配置 SSH 密钥(jack + root),供 Ansible 使用。
|
||||
#
|
||||
# 依赖:OpenSSH(ssh、ssh-keygen、scp);可选 sshpass(一次输入密码模式);可选 puttygen(仅当在交互中选择生成 .ppk 时)。
|
||||
# 默认 **不需要** PuTTY:在 Linux 工作机(如 ylc65)上用 ssh/ansible 即可。只有需要在 **Windows 上用 PuTTY/Pageant** 加载私钥时,
|
||||
# 才在提示「是否生成 PuTTY 私钥」时选 y,此时需安装 puttygen(Fedora: dnf install putty;Debian: apt install putty-tools)。
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
@@ -41,11 +46,11 @@ gen_key_if_missing() {
|
||||
ssh-keygen -t ed25519 -f "$key_path" -C "k3s-cluster" -N ""
|
||||
chmod 600 "$key_path" 2>/dev/null || true
|
||||
|
||||
# 如选择生成 PuTTY 私钥,则调用 puttygen;若命令不存在则给出安装提示并退出
|
||||
# 仅当用户在交互中明确选择生成 .ppk(Windows PuTTY)时调用 puttygen;Linux 默认不生成
|
||||
if [[ "${GENERATE_PUTTY_PPK:-n}" == "y" ]]; then
|
||||
if ! command -v puttygen >/dev/null 2>&1; then
|
||||
echo "[ERR] 已选择生成 PuTTY 私钥,但当前系统未安装 puttygen。" >&2
|
||||
echo " 请先安装 puttygen 后重新运行本脚本,或在提示时选择不生成 PuTTY 私钥。" >&2
|
||||
echo "[ERR] 已选择生成 PuTTY 私钥(.ppk),但当前系统未安装 puttygen。" >&2
|
||||
echo " 请先安装 putty-tools/putty 包后重试,或在提示时选「不生成」PuTTY 私钥(OpenSSH 默认已够用)。" >&2
|
||||
echo "" >&2
|
||||
echo " 常见系统安装示例:" >&2
|
||||
echo " Fedora / CentOS / RHEL : sudo dnf install putty 或 sudo dnf install putty-tools" >&2
|
||||
@@ -121,7 +126,6 @@ copy_key_to_host() {
|
||||
print_title "K3s 节点 SSH 密钥批量配置(控制节点 + 工作节点,每节点一把密钥)"
|
||||
|
||||
ensure_cmd ssh-keygen
|
||||
ensure_cmd ssh-copy-id
|
||||
ensure_cmd ssh
|
||||
|
||||
# 默认显示相对路径(相对于仓库根)
|
||||
@@ -130,7 +134,7 @@ INVENTORY_PATH="$(ask_default "Ansible inventory 路径(相对仓库根 ${ROOT
|
||||
[[ "$INVENTORY_PATH" != /* ]] && INVENTORY_PATH="${ROOT_DIR}/${INVENTORY_PATH}"
|
||||
[[ ! -f "$INVENTORY_PATH" ]] && { echo "[ERR] 找不到 inventory: $INVENTORY_PATH" >&2; exit 1; }
|
||||
|
||||
# 交互输入:用户名(有默认值)、密码(可选,用于后续 SSH/sudo)、是否生成 PuTTY 私钥
|
||||
# 交互输入:用户名(有默认值)、密码(可选,用于后续 SSH/sudo)、是否额外生成 PuTTY .ppk(可选,默认否)
|
||||
echo ""
|
||||
echo "--- 交互输入用户名与密码 ---"
|
||||
SSH_USER="$(ask_default "SSH 登录用户名(直接回车使用默认 jack)" "$SSH_USER_DEFAULT")"
|
||||
@@ -174,8 +178,8 @@ if [[ -n "${JACK_PASS:-}" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# 是否同时为每把新生成的 OpenSSH 密钥生成一份 PuTTY 私钥(.ppk)
|
||||
GENERATE_PUTTY_PPK="$(ask_default "是否为新密钥同时生成 PuTTY 私钥(.ppk)?(y/N)" "N")"
|
||||
# 是否同时为每把新生成的 OpenSSH 密钥生成一份 PuTTY 私钥(.ppk);Linux/默认回车即可
|
||||
GENERATE_PUTTY_PPK="$(ask_default "是否额外生成 PuTTY 私钥(.ppk,仅 Windows PuTTY 需要;Linux 用 OpenSSH 请选 N)[y/N]" "N")"
|
||||
GENERATE_PUTTY_PPK="${GENERATE_PUTTY_PPK,,}" # 转小写
|
||||
if [[ "$GENERATE_PUTTY_PPK" == "y" ]]; then
|
||||
GENERATE_PUTTY_PPK="y"
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# 从办公机 Git Bash 执行:SSH 到 ylc61 上跑若干样板 verify(对应 docs/00-05 §2 步骤 4~6 的抽样)。
|
||||
# 步骤 1~3 需已满足:远端仓库路径正确、已 deploy K3s、可选 scripts/.env.verify。
|
||||
#
|
||||
# 环境变量:
|
||||
# VERIFY_REPO_ROOT 远端仓库根目录(默认 /home/jack/实验室建设)
|
||||
# VERIFY_TEARDOWN / nginx_entry_base / nodejs_entry_base 传给远端 verify.sh
|
||||
set -euo pipefail
|
||||
|
||||
REMOTE_ROOT="${VERIFY_REPO_ROOT:-/home/jack/实验室建设}"
|
||||
TEARDOWN="${VERIFY_TEARDOWN:-1}"
|
||||
NGX="${nginx_entry_base:-http://192.168.2.61}"
|
||||
NODE="${nodejs_entry_base:-http://192.168.2.61}"
|
||||
|
||||
exec ssh -o BatchMode=yes ylc61 bash -lc "
|
||||
set -euo pipefail
|
||||
cd '${REMOTE_ROOT}'
|
||||
chmod +x scripts/verify.sh 2>/dev/null || true
|
||||
export VERIFY_TEARDOWN='${TEARDOWN}'
|
||||
export nginx_entry_base='${NGX}'
|
||||
export nodejs_entry_base='${NODE}'
|
||||
if [[ -f scripts/.env.verify ]]; then
|
||||
set -a
|
||||
# shellcheck disable=SC1091
|
||||
source scripts/.env.verify
|
||||
set +a
|
||||
fi
|
||||
export VERIFY_TEARDOWN='${TEARDOWN}'
|
||||
export nginx_entry_base='${NGX}'
|
||||
export nodejs_entry_base='${NODE}'
|
||||
./scripts/verify.sh run 02-05
|
||||
./scripts/verify.sh run 03-05
|
||||
./scripts/verify.sh run 03-07
|
||||
./scripts/verify.sh run 04-01
|
||||
"
|
||||
Reference in New Issue
Block a user