找回密码
 立即注册
首页 业界区 业界 Cloudpods Baremetal - 裸金属自动化

Cloudpods Baremetal - 裸金属自动化

史华乐 5 小时前
简介

本教程主要用于构建一个物理服务器自动化交付的系统,当一个物理服务器上电、配置好IPMI、RAID后。通过PXE可自动安装好一个操作系统在系统盘,并配置好网卡、SSH连接信息。
功能概览

cloudpods 云平台支持 Baremetal(物理机) 管理,提供的功能如下:

  • 自动化上架: 物理机上架加电启动后,自动注册到云管平台,自动分配BMC IP地址,初始化IPMI账号密码,自动上报物理机硬件配置(CPU、内存、序列号、网卡、磁盘等)
  • 自动化装机: 根据配置要求自动配置 RAID,自动分区格式化磁盘,自动部署操作系统镜像,自动初始化操作系统账号密码,自动分配IP地址,可以植入配置文件
  • 生命周期管理: 支持物理机自动化开机,关机,重装系统,远程带外管理,卸载操作系统等操作
  • 与虚拟机共享镜像: 使用虚拟机镜像部署物理机,便于虚拟机和物理机统一操作系统运行环境
  • API 支持: 以上操作均支持API操作,便于与其他系统的自动化流程集成
  • 服务器型号支持: 支持Dell、HP、华为、浪潮、联想、超微等主流x86/ARM服务器厂商和机型
  • RAID 控制器支持: LSI MegaRaid, HP Smart Array, LSI MPT2SAS, LSI MPT3SAS, Mrarvell RAID等 (也支持软RAID)
  • 转换为宿主机: 直接将物理机转换为运行虚拟机的宿主机
  • 托管已有服务器: 托管已有并装好系统的物理机
  • 支持 Legacy(传统模式)或者UEFI的 PXE 引导网络启动
  • 网卡支持自动化配置IP、掩码、网关、DNS、VLAN、Bond
支持安装的操作系统


  • openEuler: 22.03 LTS SP3, 22.03 LTS SP4, 24.03 LTS SP2
  • CentOS: 7.9, 8 stream, 9 stream, 10 stream
  • Debian: 11, 12, 13
  • Ubuntu Server: 20.04 LTS, 22.04 LTS, 24.04 LTS, 25.04
  • AnolisOS: 8.8. 8.10
  • OpenCloudOS: 8.8, 8.10, 9.2, 9.4
  • Rocky Linux: 8.x, 9.x, 10.x
  • Alma Linux: 8.x, 9.x, 10.x
Docker Compose 快速安装和使用

使用 Docker Compose 快速部署 Cloudpods Baremetal 物理机管理服务。(单节点)
环境准备

服务器配置要求


  • 最低配置要求: CPU 4核, 内存8 GiB, 存储 200GiB
  • docker 版本: ce-26.1.3+

    • docker 建议安装最新的 ce 版本,新版本已经包含 docker-compose 插件
    • docker 需要开启容器网络以及 iptables
    • 底层系统推荐使用Rocky Linux 9+ / Debian 12+

服务器网卡要求


  • 外网网卡:用于管理和下载文件,连接物理机IPMI。
  • 内网网卡:用于PXE+DHCP ,让需要PXE启动的物理服务器网卡在一个广播域。(可只配置IP和掩码)
安装配置Docker CE

国内参考文档:https://help.mirror.nju.edu.cn/docker-ce/?mirror=NJU
官方文档安装:Install Docker Engine
部署运行 Cloudpods Baremetal 服务

在部署机器上创建 cloudpods-baremetal 目录,并且进入该目录。
  1. cd /opt
  2. mkdir cloudpods-baremetal
  3. cd cloudpods-baremetal
复制代码
使用下面的命令,把运行物理机管理的 docker compose 配置文件下载下来。
  1. curl https://raw.githubusercontent.com/yunionio/ocboot/master/compose/baremetal/docker-compose.yml -o docker-compose.yaml
复制代码
PS:也可以用国内的Gitee下载:https://gitee.com/songxwn/ocboot/raw/master/compose/baremetal/docker-compose.yml
在 cloudpods-baremetal 目录运行下面的 docker compose 命令正式开始安装

运行服务,注意需要设置 LISTEN_INTERFACE 和 PUBLIC_IP 两个环境变量。

  • LISTEN_INTERFACE: 服务监听的网卡,比如 eth0 ,此网卡会负责接受 DHCP 请求。(即内网网卡)
  • PUBLIC_IP: 服务监听的 IP 地址,为对应 LISTEN_INTERFACE 网卡上的 IP 地址,可通过 ip addr show 查看对应网卡上的地址。
下面命令假设 eth0 网卡上的 ip 地址为 10.168.222.205,具体设置请根据自己的环境设置。
  1. LISTEN_INTERFACE=eth0 PUBLIC_IP=10.168.222.205 docker compose up -d
复制代码
等服务启动完成后,就可以登陆 https://$PUBLIC_IP 访问前端服务,默认登陆用户密码为:admin 和 admin@123
1.png

纳管物理机教程

物理机管理服务部署完成后,接下来纳管物理机测试。
注意

  • 待纳管的物理机需要和运行服务的节点在同一个广播域下(内网网卡)
  • 该广播域中需要禁用其他 dhcp 服务,因为 baremetal 物理机管理服务会运行 dhcp 服务
  • 如果待管理的物理机运行在其他广播域,则需要在交换机上配置 dhcp relay 到物理机管理服务的 PUBLIC_IP 地址
待纳管的物理机信息:

  • 型号: Lenovo RD640
  • IPMI 带外信息:

    • IP: 192.168.222.203
    • 用户: root
    • 密码: YourIPMI@Password

  • BIOS/UEFI引导选项设置 PXE 网络启动为第一启动顺序
1. 创建网段

纳管物理机,需要创建PXE、IPMI、物理机 3个类型的 IP 子网。

  • PXE类型: 该网段用于物理机的 PXE 网络引导启动和裸金属(安装操作系统)
  • IPMI 类型: 用于记录物理机 BMC 带外控制的地址
  • 物理机类型:用于物理机的业务网段,可配置VLAN。
这三个网段最好是运行服务所在节点网络可达的,请根据自己的网络环境设置。
点击前端“网络/IP子网/新建",创建以下的三个子网。
创建一个PXE类型的子网

假设需要给物理机 PXE 启动的网段为 192.168.77.100 到 192.168.77.200,网关为 192.168.77.1,并设置 dhcp_relay 为 PUBLIC_IP,名称为 bmnet-0,服务器类型选择PXE。
注意:

  • 此物理机类型网段的开始和结束 ip 范围,以及默认网关是和实际环境网络环境相关的,是对应到交换机和路由器上的配置,注意划分的 ip 不要和已有环境的冲突了
  • 这里一定要设置 dhcp_relay 为 PUBLIC_IP,在这个环境中是 192.168.77.12,请根据自己环境修改。

    • 因为 baremetal-agent 服务只会响应从 dhcp_relay 过来的单播 dhcp 请求,用 docker compose 部署的服务中包含了一个 dhcp_relay 服务,也监听到 PUBLIC_IP 上,会把 dhcp 广播 relay 到 agent 服务。

2.png

创建一个 IPMI 类型的子网

该网段需要包含物理机的 ipmi ip,假设为 192.168.222.200 到 192.168.222.210,网关为 192.168.222.1,名称为 ipmi-0,类型为IPMI。
3.png

创建一个物理机类型的业务子网

该网段需要包含物理机的业务网卡的网段,其他要求一样。
查看创建好的3个网段

4.png

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

在Web管理控制台添加物理机,点击”主机/基础资源/物理机/添加”,选择 “PXE 注册引导”,输入对应的物理机纳管信息。

  • 名称: test-bm-songxwn
  • IPMI 信息(这些以具体机器所在环境为准)

    • IPMI 地址: 192.168.222.203
    • IPMI 用户名: root
    • IPMI 密码: YourIPMI@Password

  • 管理口 MAC 地址: 00:0C:29:01:3E:C1

    • PXE 网络启动的网卡 MAC 地址,如果物理机支持 Redfish API 可以不填,平台能自动探测到

  • 管理口 IP: 选择刚才创建的 bmnet-0 子网
5.png

创建完成后,在物理机列表可以看到机器处于“准备中”的状态,并且探测到了品牌为 Lenovo 。(得确保IPMI 可连接到)

可以通过访问物理机的带外控制台,会看到物理机开始 PXE 引导,如果网络配置没有问题,物理机会获得物理机管理服务下发的 grub 引导配置。
获取 grub 配置后,物理机会从管理服务的 PUBLIC_IP 下载内核和 initramfs。
7.png

下载完成后,就会进入 yunionos 内存系统。
8.png

之后平台的服务会通过 ssh 远程探测收集物理机的硬件信息,等物理机变成“运行中”的状态,就算纳管成功了。
勾选对应的物理机,点击启用,就可以进行后续的安装操作系统等操作。
9.png

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


  • 适用于无IPMI&BMC的物理机,PXE服务器需要注册MAC地址才能被引导。
  • 注意勾选无BMC控制器。
  • 注意选择管理口IP,为PXE 子网。
10.png

3. 导入装机镜像

点击“主机/系统镜像/上传”按钮,导入需要装机的镜像。

  • 名称:CentOS-7.6.1810-20190430.qcow2
  • 输入镜像 URL:https://iso.yunion.cn/vm-images/CentOS-7.6.1810-20190430.qcow2
11.png

等待镜像状态变成“可用”,就可以将此镜像用于安装操作系统了。
Debian 12 AMD64 通用物理机QCOW2镜像

https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2
Debian 12 自定义包

KVM安装一个Debian 12虚拟机(安装好软件包和配置),将镜像下载下来。qemu-img convert -f qcow2 -O raw debian-disk.qcow2 debian-disk.raw

  • 安装包 cloud-init ,用于初始化
  • 安装包 vlan、ifenslave 用于VLAN和Bond
或是点击社区镜像在线导入

12.png

等待镜像状态变成“可用”,就可以将此镜像用于安装操作系统了。
13.png

4. 为物理机安装操作系统)

前提条件:物理机PXE已启动 YunionOS For PXE 系统


  • YunionOS For PXE 是一个通过网络PXE启动,在内存中临时运行的工具系统
  • 用于启动后由Cloudpods Baremetal 系统连接检测所有硬件信息,并根据硬件信息来配置网卡、硬盘、密码/密钥来安装系统。
14.png

安装系统到物理机硬盘

点击“主机/基础资源/物理机”
选择一个物理机 点击更多选择启用,然后选择安装操作系统。
15.png

配置安装信息


  • 配置系统主机名
  • 配置安装系统镜像
  • 配置硬盘 (可配置软RAID)
  • 配置root密码/公钥
  • 配置网络 (可配置Bond 和 VLAN)
16.png


  • 最后点击新建则开始安装,安装日志可去主机 - 裸金属查看。
操作说明

1. 将服务放到后台运行

可以使用 '-d/--detach' 参数把所有服务放到后台运行,命令如下:
  1. # 所有服务放到后台运行
  2. # 下面命令假设 eth0 网卡上的 ip 地址为 10.168.222.205,具体设置请根据自己的环境设置。
  3. $ LISTEN_INTERFACE=eth0 PUBLIC_IP=10.168.222.205 docker compose up -d
  4. # 服务放到后台后,可以通过 logs 自命令查看输出日志
  5. $ docker compose logs -f
复制代码
2. 登陆 climc 命令行容器

如果要使用命令行工具对平台做操作,可以使用下面的方法进入容器:
  1. $ docker exec -ti cloudpods-baremetal-climc-1 bash
  2. Welcome to Cloud Shell :-) You may execute climc and other command tools in this shell.
  3. Please exec 'climc' to get started
  4. # source 管理员认证信息
  5. bash-5.1# source /etc/yunion/rcadmin
  6. bash-5.1# climc user-list
复制代码
3. 登录物理机 pxe 内存系统

当物理机通过 pxe 启动成功后,会引导进入一个内存 linux 系统,可以通过下面的方式 ssh 进入这个系统,遇到错误的时候方便排查。
  1. # 1. 进入 climc 容器
  2. docker exec -ti cloudpods-baremetal-climc-1 bash
  3. # 2. 查看物理机 id
  4. climc host-list
  5. # 3. ssh 到 host 的内存系统
  6. climc host-ssh $对应物理机id
复制代码
另外也可以通过 climc host-logininfo $对应物理机id 获取 root 用户的登录密码。
如果物理机 pxe 内存系统上报登录信息失败,则会设置成默认的密码:mosbaremetal,对应逻辑可参考通知代码。
4. 查看服务配置和持久化数据

所有服务的持久化数据都是存储在 cloudpods-baremetal/data 目录下面的,所有配置都是自动生成的,一般不需要手动修改,下面对各个目录做说明:
  1. $ tree data
  2. data
  3. ├── etc
  4. │   ├── nginx
  5. │   │   └── conf.d
  6. │   │       └── default.conf    # 前端 nginx 配置
  7. │   └── yunion
  8. │       ├── *.conf  # cloudpods 各个服务配置
  9. │       ├── pki     # 证书目录
  10. │       ├── rcadmin     # 命令行认证信息
  11. ├── opt
  12. │   └── cloud
  13. │       └── workspace
  14. │           └── data
  15. │               └── glance # 镜像服务存储的镜像目录
  16. └── var
  17.     └── lib
  18.         ├── influxdb    # influxdb 持久化数据目录
  19.         └── mysql       # mysql 数据库持久化数据目录
复制代码
5. 删除所有容器

所有服务的持久化数据都是存储在 cloudpods-baremetal/compose/data 目录下面的,删除容器不会丢失数据,下次直接用 docker compose up 重启即可,操作如下:
  1. # 删除服务
  2. $ docker compose down
复制代码
升级

更新 compose 配置文件

当上游的 ocboot/compose/baremetal/docker-compose.yml 更新了,就可以通过 curl 命令下载最新的配置文件,然后重新启动就可以了,步骤如下:
  1. # 注意切换到对应的 cloudpods-baremetal 目录
  2. cd /opt/cloudpods-baremetal
  3. # 下载配置文件
  4. curl https://raw.githubusercontent.com/yunionio/ocboot/master/compose/baremetal/docker-compose.yml -o docker-compose.yaml
  5. # 重启服务
  6. docker compose up -d
复制代码
重启 compose 服务

拉取最新的 docker-compose.yml 配置文件后,使用下面命令重启服务就行了。
  1. cd /opt/cloudpods-baremetal
  2. docker compose down
  3. # 下面命令假设 eth0 网卡上的 ip 地址为 10.168.222.205,具体设置请根据自己的环境设置。
  4. LISTEN_INTERFACE=eth0 PUBLIC_IP=10.168.222.205 docker compose up
复制代码
已成功测试安装系统


  • Centos 7
  • Ubuntu 24.04
  • Debian 12 (使用自构建QOCW2镜像,官方镜像缺驱动)
关于PXE 网络的交换机配置


  • 目前大牌服务器都支持PXE配置VLAN ID,所以可以配置Trunk口接入,或者Trunk的PVID为PXE 所属VLAN。
  • 或者只能手动改为Access PXE VLAN,安装完成后改回业务VLAN。
运维技术交流群

发送邮件到 ➡️ me@songxwn.com
或者关注WX公众号:网工格物

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册