Cobbler实现自动化安装的核心流程
在开始配置前,需完成基础环境设置,确保服务器具备网络连通性和服务运行条件:
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
httpd(Web服务)、dhcp(DHCP服务)、tftp-server(TFTP服务)、pykickstart(Kickstart文件支持)等组件。yum -y install epel-release cobbler cobbler-web dhcp tftp-server httpd xinetd pykickstart
Cobbler的核心配置文件为/etc/cobbler/settings,需调整以下关键参数以匹配网络环境:
server指向Cobbler服务器本机IP,next_server指向TFTP服务器IP(通常与Cobbler服务器同一IP)。cobbler setting edit命令动态修改配置。sed -ri '/allow_dynamic_settings:/c\allow_dynamic_settings: 1' /etc/cobbler/settings
systemctl restart cobblerd
cobbler check命令检查环境是否满足要求(如DHCP、TFTP服务是否开启),并根据提示修复问题(如启动httpd、xinetd服务)。Cobbler通过导入操作系统ISO镜像生成安装源,供客户端下载:
/mnt)。mkdir /mnt/centos7 && mount -o loop /path/to/CentOS-7-x86_64.iso /mnt/centos7
cobbler import命令将镜像导入至Cobbler仓库,指定名称(如centos7)和架构(如x86_64)。cobbler import --path=/mnt/centos7 --name=centos7 --arch=x86_64
导入完成后,Cobbler会在/var/www/cobbler/ks_mirror/centos7目录下生成安装源文件。Kickstart文件是自动化安装的核心,定义了系统分区、用户密码、软件包等配置:
cobbler ksvalidator命令生成模板,或手动创建(如/var/lib/cobbler/kickstarts/centos7.ks)。cat > /var/lib/cobbler/kickstarts/centos7.ks << 'EOL'
install
url --url="http://$server/cobbler/ks_mirror/centos7"
lang en_US.UTF-8
keyboard us
network --bootproto=dhcp --device=eth0 --onboot=yes
rootpw --iscrypted $1$root$afc2RZysD6SOx07LLBnwB0 # 替换为加密后的root密码
firewall --disabled
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr
clearpart --all --initlabel
part / --fstype=xfs --size=1 --grow
part swap --size=2048
%post
echo "System installed successfully!" > /etc/motd
%end
EOL
openssl passwd -1生成加密密码,替换上述文件中的$1$root$afc2RZysD6SOx07LLBnwB0。若Cobbler负责管理DHCP,需编辑/etc/cobbler/dhcp.template文件,设置网段、网关、DNS及PXE启动参数:
subnet 192.168.1.0 netmask 255.255.255.0 {
range dynamic-bootp 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;
filename "pxelinux.0";
next-server $next_server; # 指向Cobbler服务器IP
}
修改完成后,同步Cobbler配置以应用DHCP设置:
cobbler sync
通过cobbler system add命令创建具体的系统配置,关联导入的镜像与Kickstart文件:
cobbler system add \
--name=myhost \ # 系统名称(自定义)
--profile=centos7 \ # 关联的profile名称(与导入镜像名称一致)
--mac=XX:XX:XX:XX:XX:XX \ # 客户端网卡MAC地址(必填,用于PXE识别)
--ip-address=192.168.1.100 \ # 静态IP(可选,若用DHCP则无需设置)
--subnet=255.255.255.0 \ # 子网掩码(可选)
--gateway=192.168.1.1 \ # 网关(可选)
--hostname=myhost.example.com \ # 主机名(可选)
--kickstart=/var/lib/cobbler/kickstarts/centos7.ks # 关联的Kickstart文件路径
设置完成后,启用系统的PXE启动并发布配置:
cobbler system edit --name=myhost --netboot-enabled=true
cobbler system bootentry publish --name=myhost
所有配置完成后,执行cobbler sync命令将配置同步至数据目录(如/var/www/cobbler、/var/lib/tftpboot),确保DHCP、TFTP服务获取最新配置:
cobbler sync
启动并设置Cobbler及相关服务开机自启:
systemctl enable cobblerd httpd dhcp xinetd
systemctl start cobblerd httpd dhcp xinetd
将客户端计算机设置为PXE启动优先(进入BIOS/UEFI调整启动顺序),启动后客户端将自动:
pxelinux.0)并启动;ks.cfg);通过以上步骤,Cobbler可实现Linux系统的批量、无人值守自动化安装,显著提升部署效率,适用于数据中心、测试环境等需要频繁部署的场景。