Cloudpods Baremetal - 裸金属自动化
本教程主要用于构建一个物理服务器自动化交付的系统,当一个物理服务器上电、配置好IPMI、RAID后。通过PXE可自动安装好一个操作系统在系统盘,并配置好网卡、SSH连接信息。 cloudpods 云平台支持 Baremetal(物理机) 管理,提供的功能如下: 使用 Docker Compose 快速部署 Cloudpods Baremetal 物理机管理服务。(单节点) docker 版本: ce-26.1.3+ 国内参考文档:https://help.mirror.nju.edu.cn/docker-ce/?mirror=NJU 官方文档安装:Install Docker Engine PS:也可以用国内的Gitee下载:https://gitee.com/songxwn/ocboot/raw/master/compose/baremetal/docker-compose.yml 运行服务,注意需要设置 LISTEN\_INTERFACE 和 PUBLIC\_IP 两个环境变量。 下面命令假设 eth0 网卡上的 ip 地址为 10.168.222.205,具体设置请根据自己的环境设置。 等服务启动完成后,就可以登陆 https\://$PUBLIC\_IP 访问前端服务,默认登陆用户密码为:admin 和 admin\@123。 物理机管理服务部署完成后,接下来纳管物理机测试。 注意 待纳管的物理机信息: IPMI 带外信息: 纳管物理机,需要创建PXE、IPMI、物理机 3个类型的 IP 子网。 这三个网段最好是运行服务所在节点网络可达的,请根据自己的网络环境设置。 点击前端“网络/IP子网/新建",创建以下的三个子网。 假设需要给物理机 PXE 启动的网段为 192.168.77.100 到 192.168.77.200,网关为 192.168.77.1,并设置 dhcp\_relay 为 PUBLIC\_IP,名称为 bmnet-0,服务器类型选择PXE。 注意: 这里一定要设置 dhcp\_relay 为 PUBLIC\_IP,在这个环境中是 192.168.77.12,请根据自己环境修改。 该网段需要包含物理机的 ipmi ip,假设为 192.168.222.200 到 192.168.222.210,网关为 192.168.222.1,名称为 ipmi-0,类型为IPMI。 该网段需要包含物理机的业务网卡的网段,其他要求一样。 在Web管理控制台添加物理机,点击”主机/基础资源/物理机/添加”,选择 “PXE 注册引导”,输入对应的物理机纳管信息。 IPMI 信息(这些以具体机器所在环境为准) 管理口 MAC 地址: 00:0C:29:01:3E:C1 创建完成后,在物理机列表可以看到机器处于“准备中”的状态,并且探测到了品牌为 Lenovo 。(得确保IPMI 可连接到) 可以通过访问物理机的带外控制台,会看到物理机开始 PXE 引导,如果网络配置没有问题,物理机会获得物理机管理服务下发的 grub 引导配置。 获取 grub 配置后,物理机会从管理服务的 PUBLIC\_IP 下载内核和 initramfs。 下载完成后,就会进入 yunionos 内存系统。 之后平台的服务会通过 ssh 远程探测收集物理机的硬件信息,等物理机变成“运行中”的状态,就算纳管成功了。 勾选对应的物理机,点击启用,就可以进行后续的安装操作系统等操作。 点击“主机/系统镜像/上传”按钮,导入需要装机的镜像。 等待镜像状态变成“可用”,就可以将此镜像用于安装操作系统了。 https://cloud.debian.org/images/cloud/bookworm/latest/debian-... KVM安装一个Debian 12虚拟机(安装好软件包和配置),将镜像下载下来。qemu-img convert -f qcow2 -O raw debian-disk.qcow2 debian-disk.raw 等待镜像状态变成“可用”,就可以将此镜像用于安装操作系统了。 点击“主机/基础资源/物理机” 选择一个物理机 点击更多选择启用,然后选择安装操作系统。 可以使用 '-d/--detach' 参数把所有服务放到后台运行,命令如下: 如果要使用命令行工具对平台做操作,可以使用下面的方法进入容器: 当物理机通过 pxe 启动成功后,会引导进入一个内存 linux 系统,可以通过下面的方式 ssh 进入这个系统,遇到错误的时候方便排查。 另外也可以通过 如果物理机 pxe 内存系统上报登录信息失败,则会设置成默认的密码:mosbaremetal,对应逻辑可参考通知代码。 所有服务的持久化数据都是存储在 cloudpods-baremetal/data 目录下面的,所有配置都是自动生成的,一般不需要手动修改,下面对各个目录做说明: 所有服务的持久化数据都是存储在 cloudpods-baremetal/compose/data 目录下面的,删除容器不会丢失数据,下次直接用 docker compose up 重启即可,操作如下: 当上游的 ocboot/compose/baremetal/docker-compose.yml 更新了,就可以通过 curl 命令下载最新的配置文件,然后重新启动就可以了,步骤如下: 拉取最新的 docker-compose.yml 配置文件后,使用下面命令重启服务就行了。 发送邮件到 ➡️ me@songxwn.com 或者关注WX公众号:网工格物简介
功能概览
支持安装的操作系统
Docker Compose 快速安装和使用
环境准备
服务器配置要求
服务器网卡要求
安装配置Docker CE
部署运行 Cloudpods Baremetal 服务
在部署机器上创建 cloudpods-baremetal 目录,并且进入该目录。
cd /opt
mkdir cloudpods-baremetal
cd cloudpods-baremetal使用下面的命令,把运行物理机管理的 docker compose 配置文件下载下来。
curl https://raw.githubusercontent.com/yunionio/ocboot/master/compose/baremetal/docker-compose.yml -o docker-compose.yaml在 cloudpods-baremetal 目录运行下面的 docker compose 命令正式开始安装
ip addr show 查看对应网卡上的地址。LISTEN_INTERFACE=eth0 PUBLIC_IP=10.168.222.205 docker compose up -d
纳管物理机教程
1. 创建网段
创建一个PXE类型的子网

创建一个 IPMI 类型的子网

创建一个物理机类型的业务子网
查看创建好的3个网段

2.1 PXE引导注册纳管物理机(有IPMI\&BMC)





2.2 预注册纳管物理机(无IPMI\&BMC)

3. 导入装机镜像

Debian 12 AMD64 通用物理机QCOW2镜像
Debian 12 自定义包
或是点击社区镜像在线导入


4. 为物理机安装操作系统)
前提条件:物理机PXE已启动 YunionOS For PXE 系统

安装系统到物理机硬盘

配置安装信息

操作说明
1. 将服务放到后台运行
# 所有服务放到后台运行
# 下面命令假设 eth0 网卡上的 ip 地址为 10.168.222.205,具体设置请根据自己的环境设置。
$ LISTEN_INTERFACE=eth0 PUBLIC_IP=10.168.222.205 docker compose up -d
# 服务放到后台后,可以通过 logs 自命令查看输出日志
$ docker compose logs -f2. 登陆 climc 命令行容器
$ docker exec -ti cloudpods-baremetal-climc-1 bash
Welcome to Cloud Shell :-) You may execute climc and other command tools in this shell.
Please exec 'climc' to get started
# source 管理员认证信息
bash-5.1# source /etc/yunion/rcadmin
bash-5.1# climc user-list3. 登录物理机 pxe 内存系统
# 1. 进入 climc 容器
docker exec -ti cloudpods-baremetal-climc-1 bash
# 2. 查看物理机 id
climc host-list
# 3. ssh 到 host 的内存系统
climc host-ssh $对应物理机idclimc host-logininfo $对应物理机id 获取 root 用户的登录密码。4. 查看服务配置和持久化数据
$ tree data
data
├── etc
│ ├── nginx
│ │ └── conf.d
│ │ └── default.conf # 前端 nginx 配置
│ └── yunion
│ ├── *.conf # cloudpods 各个服务配置
│ ├── pki # 证书目录
│ ├── rcadmin # 命令行认证信息
├── opt
│ └── cloud
│ └── workspace
│ └── data
│ └── glance # 镜像服务存储的镜像目录
└── var
└── lib
├── influxdb # influxdb 持久化数据目录
└── mysql # mysql 数据库持久化数据目录5. 删除所有容器
# 删除服务
$ docker compose down升级
更新 compose 配置文件
# 注意切换到对应的 cloudpods-baremetal 目录
cd /opt/cloudpods-baremetal
# 下载配置文件
curl https://raw.githubusercontent.com/yunionio/ocboot/master/compose/baremetal/docker-compose.yml -o docker-compose.yaml
# 重启服务
docker compose up -d重启 compose 服务
cd /opt/cloudpods-baremetal
docker compose down
# 下面命令假设 eth0 网卡上的 ip 地址为 10.168.222.205,具体设置请根据自己的环境设置。
LISTEN_INTERFACE=eth0 PUBLIC_IP=10.168.222.205 docker compose up已成功测试安装系统
关于PXE 网络的交换机配置
运维技术交流群