CentOS Cobbler与PXE启动配合指南
Cobbler是CentOS下实现Linux系统自动化部署的工具,通过PXE(网络启动)协议,客户端可从网络获取引导文件和安装镜像,无需手动安装介质。以下是两者配合的具体步骤:
sudo yum install -y cobbler cobbler-web tftp-server dhcp httpd xinetd pykickstart
sudo systemctl stop firewalld && sudo systemctl disable firewalld
sudo setenforce 0
eth0)开启DHCP和TFTP服务:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 修改以下参数
BOOTPROTO=dhcp
ONBOOT=yes
sudo systemctl start cobblerd && sudo systemctl enable cobblerd
/etc/cobbler/settings):server: 192.168.1.100 # Cobbler服务器IP
next_server: 192.168.1.100 # TFTP服务器IP(通常与Cobbler服务器一致)
manage_dhcp: 1 # 让Cobbler管理DHCP配置(简化操作)
manage_tftp: 1 # 让Cobbler管理TFTP服务
pxe_just_once: 1 # 防止客户端重复PXE启动
DHCP服务需为客户端分配IP,并告知其PXE引导文件的路径和TFTP服务器地址。
编辑/etc/dhcp/dhcpd.conf(若使用dhcpd.template,可通过cobbler dhcp命令生成),添加以下内容:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200; # 动态分配的IP范围
option routers 192.168.1.1; # 默认网关
option domain-name-servers 8.8.8.8, 8.8.4.4; # DNS服务器
filename "pxelinux.0"; # PXE引导文件名
next-server 192.168.1.100; # TFTP服务器IP(Cobbler服务器)
}
重启DHCP服务使配置生效:
sudo systemctl restart dhcpd
TFTP服务用于存储和传输PXE引导文件及操作系统镜像。
编辑/etc/xinetd.d/tftp,将disable设置为no以启用TFTP:
service tftp {
socket_type = dgram
protocol = udp
wait = yes
user = root
group = root
server = /usr/sbin/tftp
server_args = -s /var/lib/tftpboot # TFTP根目录
disable = no
}
重启xinetd服务:
sudo systemctl restart xinetd
sudo cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
sudo cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/ # 可选:支持菜单界面
pxelinux.cfg/default,定义启动菜单:default menu.c32
prompt 0
timeout 300
menu title PXE Boot Menu
label Install CentOS 7
kernel centos7-1810/vmlinuz
append initrd=centos7-1810/initrd.img method http://192.168.1.100/centos7-1810/
label Install CentOS 8
kernel centos8-8.5.2111/vmlinuz
append initrd=centos8-8.5.2111/initrd.img method http://192.168.1.100/centos8-8.5.2111/
注:
kernel和initrd路径需与后续导入的操作系统镜像路径一致。
通过Cobbler导入CentOS ISO镜像,自动生成Kickstart配置和镜像文件:
# 假设ISO文件存放在/tmp目录下
sudo cobbler import --path=/tmp/CentOS-7-x86_64-1810.iso --name=centos7-1810 --arch=x86_64
sudo cobbler import --path=/tmp/CentOS-8-x86_64-8.5.2111.iso --name=centos8-8.5.2111 --arch=x86_64
导入完成后,Cobbler会将镜像解压到/var/www/cobbler/ks_mirror/目录,并生成对应的Kickstart模板。
为每个操作系统创建Profile(配置文件),关联镜像与Kickstart脚本:
# 示例:创建CentOS 7 Profile
sudo cobbler profile add \
--name=centos7-1810 \
--distro=centos7-1810-x86_64 \
--kickstart=/var/lib/cobbler/kickstarts/centos7.ks # Kickstart脚本路径
# 示例:创建CentOS 8 Profile
sudo cobbler profile add \
--name=centos8-8.5.2111 \
--distro=centos8-8.5.2111-x86_64 \
--kickstart=/var/lib/cobbler/kickstarts/centos8.ks
注:Kickstart脚本(如
centos7.ks)需提前编写,定义系统安装过程中的分区、用户、软件包等配置。
sudo cobbler system add \
--name=test-pc \
--profile=centos7-1810 \
--netboot-enabled=true # 开启网络启动
sudo cobbler sync
pxelinux.0引导文件,进入PXE菜单,选择对应的操作系统进行自动安装。通过以上步骤,Cobbler与PXE启动配合完成,可实现CentOS系统的自动化网络部署,大幅减少手动安装工作量。