feat: 按 doc_id 重组 ansible/files 与验证框架
- ansible/files 改为与文档 XX-YY 对齐的目录结构,更新相关 playbook 路径 - 新增 scripts/verify.sh 与 ansible/playbooks/verify/*.yml,移除单体 verify-matrix.yml - 补充 docs/00-02 矩阵状态、00-05 验证框架与流程、00-04 环境与 ylc65 工作机说明 - 增加 k3s 存储准备、Longhorn、local-path 等 playbook 与辅助脚本 Made-with: Cursor
This commit is contained in:
@@ -19,11 +19,42 @@
|
||||
- IP 规划、主机名已大致确定,例如:
|
||||
- `ylc61`:k3s server,IP `192.168.2.61`
|
||||
- `ylc62` ~ `ylc64`:k3s worker,IP `192.168.2.62` ~ `192.168.2.64`
|
||||
- **数据盘**:若使用 `/storage` 方案,需在每台节点上提前挂载数据盘并创建 `/storage`;
|
||||
- **数据盘**:若使用 `/storage` 方案,每台节点须将**独立数据盘**挂载到 `/storage`(与 `/` 不同设备),详见 `00-04` 与下文「数据盘准备」。
|
||||
- 不覆盖:
|
||||
- 从「完全裸铁 + 无系统」开始的 PXE 装机;
|
||||
- 高级 HA(多 server + 外部 datastore)——仍按 `01-04`、`03-10` 执行。
|
||||
|
||||
### 1.1 数据盘准备(手工,或与自动化二选一)
|
||||
|
||||
在运行 k3s 安装 playbook 之前,**每台**节点应满足:`mountpoint /storage` 为真,且 `findmnt -n -o SOURCE /` 与 `findmnt -n -o SOURCE /storage` **不相同**。
|
||||
|
||||
**手工示例**(第二块盘为 `/dev/vdb`,请按 `lsblk` 实际设备名修改;**误选设备会清空该盘**):
|
||||
|
||||
```bash
|
||||
sudo parted -s /dev/vdb mklabel gpt mkpart primary ext4 0% 100%
|
||||
sudo mkfs.ext4 -F /dev/vdb1
|
||||
UUID=$(sudo blkid -s UUID -o value /dev/vdb1)
|
||||
echo "UUID=$UUID /storage ext4 defaults,nofail 0 2" | sudo tee -a /etc/fstab
|
||||
sudo mkdir -p /storage && sudo mount -a
|
||||
```
|
||||
|
||||
XFS 用户将 `mkfs.ext4` / `fstab` 类型改为 `xfs` 即可(Longhorn 支持 ext4/XFS)。
|
||||
|
||||
**自动化(可选)**:在 `group_vars/all.yml` 中设置 `k3s_prepare_storage: true` 与 `k3s_data_disk_device: /dev/vdb`(四台盘符一致时一条即可;不一致则用 `host_vars/<hostname>.yml` 覆盖),然后执行:
|
||||
|
||||
```bash
|
||||
ansible-playbook -i inventory.ini playbooks/k3s-prepare-storage.yml
|
||||
```
|
||||
|
||||
该 playbook 在 `/storage` 已是独立挂载时会跳过,避免重复执行。
|
||||
|
||||
### 1.2 推荐执行顺序(10G + 32G 四节点)
|
||||
|
||||
1. (可选)`playbooks/k3s-prepare-storage.yml`
|
||||
2. `playbooks/k3s-init-and-install.yml`(可在 `group_vars` 中设 `k3s_verify_storage_mount: true` 强制校验 `/` 与 `/storage` 不同源)
|
||||
3. (可选)`playbooks/longhorn-install.yml`(Helm,见 `03-07`)
|
||||
4. (可选)`playbooks/apply-local-path-config-lab.yml`,或 `longhorn_apply_local_path_lab: true` 随 Longhorn 一并应用(真源:`files/kube-system/local-path-config-lab.json`,见 `03-05`)
|
||||
|
||||
## 2. 目录结构
|
||||
|
||||
本仓库已有 `ansible/`:
|
||||
@@ -35,7 +66,13 @@ ansible/
|
||||
group_vars/
|
||||
all.yml
|
||||
playbooks/
|
||||
k3s-prepare-storage.yml # 可选:第二块盘分区、挂载 /storage
|
||||
k3s-init-and-install.yml # 标准 IPv4 安装
|
||||
longhorn-install.yml # 可选:Helm 安装 Longhorn
|
||||
apply-local-path-config-lab.yml # 可选:仅应用 local-path 实验室 ConfigMap
|
||||
files/
|
||||
longhorn/values-lab.yaml # 实验室 Helm values
|
||||
kube-system/local-path-config-lab.json
|
||||
```
|
||||
|
||||
## 3. 示例 inventory
|
||||
@@ -77,6 +114,14 @@ k3s_worker
|
||||
|
||||
禁用时设 `k3s_manage_coredns: false`。
|
||||
|
||||
**存储挂载校验**(推荐实验室开启):
|
||||
|
||||
- `k3s_verify_storage_mount: true`:在 `k3s-init-and-install.yml` 安装 k3s **之前**,断言 `/storage` 为挂载点且与 `/` 不同块设备;失败时提示查阅 `00-04`。已有「目录式假 /storage」的旧环境可临时设为 `false`。
|
||||
|
||||
**数据盘自动化**(可选):
|
||||
|
||||
- `k3s_prepare_storage: true` 且 `k3s_data_disk_device: /dev/vdb`:由 `k3s-prepare-storage.yml` 执行(见 §1.1)。
|
||||
|
||||
## 5. 执行流程概览
|
||||
|
||||
playbook 依次执行:
|
||||
@@ -113,8 +158,12 @@ playbook 依次执行:
|
||||
|
||||
```bash
|
||||
cd ansible
|
||||
# (可选)先准备数据盘挂载 /storage
|
||||
# ansible-playbook -i inventory.ini playbooks/k3s-prepare-storage.yml
|
||||
# 标准 IPv4 安装
|
||||
ansible-playbook -i inventory.ini playbooks/k3s-init-and-install.yml
|
||||
# (可选)Helm 安装 Longhorn
|
||||
# ansible-playbook -i inventory.ini playbooks/longhorn-install.yml
|
||||
```
|
||||
|
||||
执行结束后,playbook 会输出:
|
||||
|
||||
Reference in New Issue
Block a user