一、环境准备
在开始配置前,需确保服务器满足以下条件:
systemctl stop firewalld && systemctl disable firewalld # 关闭防火墙
sed -i 's/selinux=.*/selinux=disabled/g' /etc/selinux/config # 禁用SELinux
二、安装Cobbler及相关组件
Cobbler依赖TFTP、DHCP、HTTP等服务,需通过包管理器安装:
# Debian/Ubuntu系统
sudo apt-get update
sudo apt-get install -y cobbler cobbler-web tftp-server dhcp httpd xinetd
# RHEL/CentOS系统
sudo yum install -y epel-release # 安装EPEL源
sudo yum install -y cobbler cobbler-web tftp-server dhcp xinetd
三、配置Cobbler主服务
sudo systemctl start cobblerd httpd xinetd
sudo systemctl enable cobblerd httpd xinetd
cobbler check命令,根据提示修复问题(如同步时间、安装缺失工具)。/etc/cobbler/settings,设置服务器IP和TFTP服务器地址:server: 192.168.1.100 # Cobbler服务器IP
next_server: 192.168.1.100 # TFTP服务器IP(通常与Cobbler服务器一致)
manage_dhcp: 1 # 启用Cobbler管理DHCP(若使用独立DHCP服务器则设为0)
四、配置DHCP服务(可选,若Cobbler管理DHCP)
编辑Cobbler的DHCP模板文件/etc/cobbler/dhcp.template,配置子网、地址池和PXE引导参数:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200; # 地址池范围
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
}
重启DHCP服务使配置生效:
sudo systemctl restart isc-dhcp-server # Debian/Ubuntu
sudo systemctl restart dhcpd # RHEL/CentOS
五、配置TFTP服务
编辑/etc/xinetd.d/tftp,设置TFTP根目录为Cobbler的默认路径:
server_args = -s /var/lib/tftpboot
disable = no
重启xinetd服务:
sudo systemctl restart xinetd
六、导入Debian操作系统镜像
debian-12.11.0-amd64-DVD-1.iso)复制到服务器,挂载到临时目录:mkdir -p /mnt/debian
mount -o loop /path/to/debian-12.11.0-amd64-DVD-1.iso /mnt/debian
cobbler import命令导入镜像,生成Distro(发行版)和Profile(配置文件):sudo cobbler import --name=debian12 --path=/mnt/debian --arch=x86_64
导入完成后,可通过cobbler distro list查看生成的Distro(如debian12-x86_64)。七、准备Debian PXE引导文件
Debian DVD镜像中的initrd.gz不适合PXE启动,需下载官方Netboot版本的initrd.gz并拼接:
# 下载Netboot initrd.gz(以Debian 12为例)
wget -O /root/debian12-netboot.gz https://mirrors.ustc.edu.cn/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
# 拼接initrd.gz(替换原镜像中的initrd.gz)
cat /var/www/cobbler/distro_mirror/debian12/install.amd/initrd.gz /root/debian12-netboot.gz > /var/www/cobbler/pub/debian12-netboot.gz
# 修改Cobbler Distro配置,使用新的initrd.gz
sudo cobbler distro edit --name=debian12-x86_64 --initrd "/var/www/cobbler/pub/debian12-netboot.gz"
八、编写Debian自动化安装Seed文件
Debian使用Preseed文件实现无人值守安装,需创建自定义Seed文件(如/var/lib/cobbler/templates/debian12.seed):
# 基本语言与区域设置
d-i debian-installer/locale string en_US.UTF-8
d-i keyboard-configuration/xkb-keymap select us
# 用户及密码配置
d-i passwd/root-login boolean true
d-i passwd/root-password password Passw0rd
d-i passwd/root-password-again password Passw0rd
d-i passwd/make-user boolean false
# 网络配置
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string debian-server
d-i netcfg/get_domain string local
# 镜像源配置(使用国内镜像加速)
d-i mirror/country string manual
d-i mirror/http/hostname string mirrors.tuna.tsinghua.edu.cn
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
# 分区配置(自动划分)
d-i partman-auto/method string regular
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
# 软件包选择
tasksel tasksel/first multiselect standard
d-i pkgsel/include string vim openssh-server
九、创建Cobbler Profile并关联Seed文件
使用cobbler profile edit命令创建Profile,关联Debian Distro和Seed文件:
sudo cobbler profile edit --name=debian12-profile --distro=debian12-x86_64 --kickstart=/var/lib/cobbler/templates/debian12.seed
十、添加客户端系统并同步配置
若需静态分配IP,可通过MAC地址添加客户端系统:
sudo cobbler system add --name=debian-client-01 --profile=debian12-profile --mac=00:11:22:33:44:55 --ip-address=192.168.1.101 --subnet=255.255.255.0 --gateway=192.168.1.1 --hostname=debian-client-01.local
最后,同步Cobbler配置使所有更改生效:
sudo cobbler sync
十一、客户端验证
pxelinux.0引导文件;debian12-profile,自动开始Debian安装流程;通过以上步骤,即可使用Cobbler实现Debian系统的网络自动化部署,适用于大规模数据中心或实验室环境。