systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
yum install -y epel-release
Cobbler需要httpd(Web服务)、dhcp(DHCP服务)、tftp-server(TFTP服务)、pykickstart(Kickstart文件生成)等组件,通过以下命令安装:
yum install -y cobbler cobbler-web httpd dhcp tftp-server pykickstart xinetd
启动cobblerd(Cobbler主服务)、httpd(提供Kickstart文件与镜像下载)、xinetd(管理TFTP服务),并设置为开机自启:
systemctl start cobblerd httpd xinetd
systemctl enable cobblerd httpd xinetd
运行cobbler check命令,检查系统环境是否满足Cobbler要求(如/var/www/cobbler目录是否存在、dnsmasq是否安装等),并根据提示修复问题(如缺少dnsmasq则运行yum install -y dnsmasq)。
编辑/etc/cobbler/settings文件,配置Cobbler服务器与TFTP服务器地址(需替换为实际IP):
sed -ri '/^server:/c\server: 192.168.1.100' /etc/cobbler/settings
sed -ri '/^next_server:/c\next_server: 192.168.1.100' /etc/cobbler/settings
server:Cobbler服务器的IP地址(用于客户端访问Web界面与下载镜像)。next_server:TFTP服务器的IP地址(用于传输PXE启动文件,通常与Cobbler服务器IP一致)。允许Cobbler动态修改配置文件(如DHCP模板),避免手动编辑冲突:
sed -ri '/^allow_dynamic_settings:/c\allow_dynamic_settings: 1' /etc/cobbler/settings
systemctl restart cobblerd
Cobbler可通过manage_dhcp=1自动管理DHCP,编辑/etc/cobbler/dhcp.template文件,设置网段、网关、DNS及PXE启动参数(需替换为实际网段与IP):
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启动文件名(默认由Cobbler生成)
next-server 192.168.1.100; # TFTP服务器地址
}
启用Cobbler管理DHCP:
cobbler setting edit --name=manage_dhcp --value=1
编辑/etc/xinetd.d/tftp文件,启用TFTP服务(将disable设置为no):
sed -ri '/^disable/c\disable = no' /etc/xinetd.d/tftp
systemctl restart xinetd
将CentOS ISO镜像导入Cobbler,自动生成镜像目录与Kickstart模板。假设ISO文件存放在/mnt目录下:
cobbler import --path=/mnt/CentOS-7-x86_64-DVD-2009.iso --name=centos7 --arch=x86_64
--path:ISO文件的挂载路径。--name:镜像名称(后续创建Profile时使用)。--arch:系统架构(x86_64或i386)。导入完成后,镜像会存储在/var/www/cobbler/ks_mirror/centos7目录下,客户端可通过http://192.168.1.100/cobbler/ks_mirror/centos7访问。
Kickstart文件定义了自动化安装的参数(如分区、软件包、root密码等)。Cobbler自带示例文件,可复制到/var/lib/cobbler/kickstarts/目录下修改:
cp /var/lib/cobbler/kickstarts/sample.ks /var/lib/cobbler/kickstarts/centos7.ks
编辑centos7.ks文件,关键参数说明:
# 安装源(指向Cobbler镜像目录)
installurl --url="http://192.168.1.100/cobbler/ks_mirror/centos7"
# root密码(使用openssl生成加密密码,替换your_encrypted_password)
rootpw --iscrypted $6$your_encrypted_password
# 分区配置(自动清空磁盘并创建根分区、swap分区)
clearpart --all --initlabel
part / --fstype ext4 --size 10240 # 根分区10GB
part swap --size 2048 # swap分区2GB
# 引导加载器配置(安装在MBR)
bootloader --location=mbr
# 防火墙(禁用)
firewall --disabled
# 软件包选择(安装基础系统)
%packages
@base
@core
vim
net-tools
%end
生成加密root密码:使用openssl passwd -6命令生成(如openssl passwd -6 "yourpassword"),替换上述your_encrypted_password。
Profile是Cobbler中连接镜像与Kickstart文件的配置项,定义了客户端的安装模板。运行以下命令创建Profile:
cobbler profile add --name=centos7-profile --distro=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks
--name:Profile名称(客户端将通过此名称识别安装模板)。--distro:导入的镜像名称(cobbler import时指定的--name)。--kickstart:Kickstart文件的路径。若需批量部署,需确保客户端支持PXE网络启动(进入BIOS/UEFI设置,将“Boot Order”中的“Network Boot”设为第一启动项)。
所有配置完成后,运行cobbler sync命令将设置同步到数据目录(如/var/lib/tftpboot),并更新DHCP模板:
cobbler sync
同步完成后,客户端通过PXE启动时,会自动从Cobbler服务器下载镜像与Kickstart文件,按照配置完成自动化安装。
http://192.168.1.100/cobbler/ks_mirror/centos7访问镜像目录,确认文件完整性。/var/log/cobbler/cobbler.log与/var/log/messages日志文件,定位问题原因。