Debian Cobbler管理网络启动的步骤
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/selinux=.*/selinux=disabled/g' /etc/selinux/config
setenforce 0
yum为apt):sudo apt update && sudo apt install -y cobbler cobbler-web tftpd-hpa isc-dhcp-server xinetd apache2
编辑/etc/cobbler/settings,调整核心参数以启用网络启动:
server(Cobbler服务器IP)和next_server(TFTP服务器IP,通常与Cobbler服务器一致)设为本地IP。manage_dhcp、manage_tftpd设为1,允许Cobbler自动管理DHCP和TFTP配置。pxe_just_once设为0(默认值),避免客户端因误配置无法再次启动。server: 192.168.1.100
next_server: 192.168.1.100
manage_dhcp: 1
manage_tftpd: 1
pxe_just_once: 0
编辑Cobbler的DHCP模板/etc/cobbler/dhcp.template,定义IP分配规则与PXE启动参数:
$next_server(TFTP服务器IP)、$subnet(子网)、$range(IP范围)、$gateway(网关)、$dns(DNS)替换为实际值。filename "/pxelinux.0"(Debian的PXE引导文件)。subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
range dynamic-bootp 192.168.1.100 192.168.1.200;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
}
编辑/etc/xinetd.d/tftp,确保TFTP服务指向Cobbler的文件目录:
server_args中的$args改为/var/lib/tftpboot(Cobbler默认存储PXE文件的路径)。service tftp {
disable = no
server_args = -s /var/lib/tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
将Debian ISO镜像导入Cobbler,生成安装文件:
# 创建挂载目录并挂载ISO
sudo mkdir -p /mnt/debian-iso
sudo mount -o loop /path/to/debian.iso /mnt/debian-iso
# 导入镜像(命名需符合后续profile要求)
sudo cobbler import --path=/mnt/debian-iso --name=debian-12 --arch=x86_64
# 卸载ISO
sudo umount /mnt/debian-iso
sudo cobbler profile edit --name=debian-12-x86_64 --distro=debian-12-x86_64 --kickstart=/var/lib/cobbler/kickstarts/debian-12.seed
sudo cobbler system add --name=test-pc --profile=debian-12-x86_64 --netboot-enabled=true
将所有更改应用到Cobbler及依赖服务:
# 检查配置是否有误(解决提示的问题)
sudo cobbler check
# 同步配置(关键步骤,生成DHCP/TFTP文件)
sudo cobbler sync
# 启动并设置开机自启
sudo systemctl start cobblerd && sudo systemctl enable cobblerd
sudo systemctl start isc-dhcp-server && sudo systemctl enable isc-dhcp-server
sudo systemctl start xinetd && sudo systemctl enable xinetd
pxelinux.0引导文件,进入Debian安装界面(或自动安装,若已配置Kickstart)。