在定制启动菜单前,需确保Cobbler及依赖服务(HTTP、TFTP、DHCP)已正确安装并运行。核心命令包括:
# 安装Cobbler及依赖
sudo yum install -y cobbler cobbler-web tftp-server dhcp httpd xinetd pykickstart
# 启动服务并设置开机自启
sudo systemctl enable --now cobblerd httpd tftp
通过cobbler check命令验证环境配置,根据提示修复缺失项(如同步默认引导加载器)。
Cobbler的PXE启动菜单由/etc/cobbler/pxe/pxedefault.template文件定义,需调整以下参数实现定制:
MENU TITLE修改(如改为“CentOS Automated Install Menu”);TIMEOUT(单位:秒,如TIMEOUT 100表示10秒后自动选择默认项);ONTIMEOUT(设置为某个profile名称,如ONTIMEOUT centos7.6-x86_64,超时后自动启动该配置);LABEL local部分(MENU DEFAULT表示默认选中,“LOCALBOOT -1”表示本地硬盘启动)。示例修改后的模板内容:
DEFAULT menu
PROMPT 0
MENU TITLE CentOS Automated Install Menu # 自定义菜单名称
TIMEOUT 100 # 超时时间(秒)
TOTALTIMEOUT 6000
ONTIMEOUT centos7.6-x86_64 # 超时后默认启动的profile
LABEL local
MENU LABEL (local) # 本地启动项显示名称
MENU DEFAULT # 设为默认选中
LOCALBOOT -1 # 本地硬盘启动
$pxe_menu_items # 动态插入的profile菜单项
MENU end
Profile是Cobbler中关联操作系统镜像与Kickstart文件的配置单元,需确保其包含正确的启动参数:
sudo cobbler profile add \
--name centos7.6-x86_64 \ # Profile名称(需与ONTIMEOUT一致)
--distro centos7.6-x86_64 \ # 导入的CentOS镜像名称(通过`cobbler import`生成)
--kickstart /var/lib/cobbler/kickstarts/centos7.ks # Kickstart文件路径
cobbler profile edit命令:sudo cobbler profile edit \
--name centos7.6-x86_64 \
--kopts='net.ifnames=0 biosdevname=0' # 添加内核参数
Kickstart文件用于自动化安装流程,需确保其路径正确且在Profile中引用。示例/var/lib/cobbler/kickstarts/centos7.ks内容:
install
url --url=$tree
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda
part /boot --fstype=xfs --size=1024
part swap --size=1024
part / --fstype=xfs --size=1 --grow
rootpw --iscrypted $default_password_crypted
authconfig --enableshadow --passalgo=sha512
selinux --disabled
firewall --disabled
reboot
所有修改完成后,需通过cobbler sync命令将配置同步到TFTP服务器(生成菜单文件)和DHCP服务器(更新引导配置):
sudo cobbler sync
通过以上步骤,可实现Cobbler对CentOS启动菜单的完全定制,满足企业级批量部署的需求。