本文配套脚本开源在 GitHub gists,部署一个家用 3 节点集群实测 1.5 小时以内。脚本做了幂等,重跑不会破坏已有集群。

目录结构

~/pve-bootstrap/
├── inventory.yaml
├── bootstrap.sh         # 装机后的初始化
├── replace-sources.sh   # 换源 + 去订阅
├── join-cluster.yaml    # Ansible 加入集群
└── README.md

bootstrap.sh 要点

  • 判断是否安装 PVE(/etc/pve 目录)
  • 关闭企业源,添加 tuna 镜像
  • 关闭 ceph ISO 警告
  • 设置 timezone / locale
  • 建立 /root/.ssh/authorized_keys 互通

加入集群

在第一台主机执行 pvecm create 拿到 cluster info。其他两台用 pvecm add <master-ip> 即可。Ansible playbook 把"加入集群 + 启动 corosync"封装为单条 task。

验收清单

pvecm status    # quorate 一致
ha-manager status
ceph -s          # HEALTH_OK
# 在 Web 界面看到 3 个节点是绿色
脚本不处理"证书与 SSH 主机名漂移",所以请先固化 /etc/hosts 与 /etc/hostname 一致后再跑。