Cobbler项目中使用PXE部署VMware ESXi的完整指南
前言
Cobbler作为一款优秀的Linux网络安装服务器,不仅支持各种Linux发行版的自动化部署,还能用于VMware ESXi虚拟化平台的PXE安装。本文将详细介绍如何使用Cobbler实现ESXi的PXE网络安装,涵盖BIOS和UEFI两种启动模式。
环境准备
支持的安装方式
目前Cobbler支持以下ESXi安装方式:
已支持的功能(DHCPv4):
- BIOS PXE安装(通过syslinux-3.86的
pxelinux.0
和mboot.c32
) - BIOS iPXE安装(通过ipxe
undionly.kpxe
链式加载syslinux-3.86pxelinux.0
) - UEFI PXE安装(通过ESXi UEFI引导程序
mboot.efi
) - UEFI iPXE安装(通过ipxe
snponly.efi
链式加载ESXi UEFI引导程序mboot.efi
)
暂不支持的功能:
- 使用DHCPv6安装ESXi
- UEFI固件的HTTP安装
- 配置文件启动菜单
快速安装指南
第一步:准备ESXi引导文件
根据不同的启动方式,需要准备不同的引导文件:
# 创建ESXi引导文件目录
mkdir /var/lib/cobbler/loaders/esxi
# 对于BIOS固件PXE安装,需要syslinux 3.86版本的pxelinux.0
curl https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/3.xx/syslinux-3.86.tar.gz | tar -zx -C /tmp
cp /tmp/syslinux-3.86/core/pxelinux.0 /var/lib/cobbler/loaders/esxi/
# 对于UEFI固件PXE安装,需要从ESXi安装ISO中提取bootx64.efi并重命名为mboot.efi
mount -t iso9660 VMware-VMvisor-Installer-7.0U3d-19482537.x86_64.iso /mnt
cp /mnt/efi/boot/bootx64.efi /var/lib/cobbler/loaders/esxi/mboot.efi
umount /mnt
# 同步Cobbler配置
cobbler sync
第二步:导入ESXi发行版
mount -t iso9660 /srv/VMware-VMvisor-Installer-7.0U3d-19482537.x86_64.iso /mnt
cobbler import --name=esxiv70U3d --path=/mnt --arch=x86_64
导入命令会自动检测发行版类型为vmware
,OS版本为esxi70
,并创建名为esxiv70U3d-x86_64
的发行版和配置文件。
第三步:添加系统配置
cobbler system add --name some-esxi-host --profile esxiv70U3d-x86_64 --netboot-enabled=true \
--interface="vmnic0" --mac-address="01:23:45:67:89:ab" --dns-name=some-esxi-host.localdomain
重要提示:必须为ESXi系统提供MAC地址才能通过Cobbler进行部署。
深入理解ESXi引导过程
BIOS固件引导详解
VMware官方文档明确指出:ESXi的BIOS引导程序mboot.c32
作为SYSLINUX插件运行,仅与SYSLINUX 3.86版本兼容。虽然某些4.x版本可能工作,但最新6.x版本完全不兼容。
BIOS PXE引导流程:
- DHCP服务器提供TFTP服务器IP和
esxi/pxelinux.0
文件位置 - PXELINUX请求
esxi/pxelinux.cfg/01-01-23-45-67-89-ab
配置文件 - 配置文件指定
mboot.c32
内核路径和主机boot.cfg
文件
UEFI固件引导详解
ESXi UEFI引导程序位于安装ISO的efi/boot/bootx64.efi
路径。建议使用最新ESXi版本的引导程序,因为新版mboot.efi
通常可以引导旧版ESXi,反之则不一定。
UEFI PXE引导流程:
- DHCP服务器提供TFTP服务器IP和
esxi/system/01-01-23-45-67-89-ab/mboot.efi
文件位置 mboot.efi
尝试从相同位置下载boot.cfg
文件
iPXE引导配置
iPXE可以用于链式加载ESXi引导程序:
- BIOS固件:使用
undionly.kpxe
链式加载syslinuxpxelinux.0
- UEFI固件:使用
snponly.efi
链式加载ESXi UEFI引导程序mboot.efi
启用iPXE引导:
cobbler system edit --name some-esxi-host --enable-ipxe=true
boot.cfg文件解析
boot.cfg
是ESXi引导过程中关键的配置文件,指定了内核、内核选项和引导模块。Cobbler通过bootcfg.template
模板为每个系统和配置文件生成相应的boot.cfg
。
可以通过HTTP API查看生成的boot.cfg
:
curl http://localhost/cblr/svc/op/bootcfg/profile/esxiv70U3d-x86_64
curl http://localhost/cblr/svc/op/bootcfg/system/some-esxi-host
内核选项配置
可以为配置文件和系统添加内核选项,系统会继承配置文件的内核选项:
cobbler profile edit --name esxiv70U3d-x86_64 --kernel-options="vlanid=203"
cobbler system edit --name some-esxi-host --kernel-options="systemMediaSize=small"
TFTP目录结构
ESXi相关的TFTP目录结构如下:
/var/lib/tftpboot/esxi
├── images -> ../images
├── mboot.efi
├── pxelinux.0
├── pxelinux.cfg -> ../pxelinux.cfg
├── snponly.efi
├── system
│ ├── 01-01-23-45-67-89-ab
│ │ ├── boot.cfg
│ │ └── mboot.efi -> ../../mboot.efi
│ └── 01-98-40-bb-c8-36-00
│ ├── boot.cfg
│ └── mboot.efi -> ../../mboot.efi
└── undionly.pxe
常见问题与建议
- 版本兼容性:始终使用最新版ESXi的引导程序以获得最佳兼容性
- MAC地址:部署ESXi时必须指定MAC地址
- SYSLINUX版本:严格使用3.86版本,其他版本可能导致兼容性问题
- 网络配置:确保DHCP和TFTP服务配置正确
通过本文的详细指导,您应该能够顺利使用Cobbler完成VMware ESXi的PXE网络安装。如果在实施过程中遇到问题,建议参考VMware官方文档获取更多技术细节。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考