阅读量:29
Linux Cobbler实现自动化部署的完整流程
一、环境准备
在开始部署前,需完成基础环境配置,确保服务器具备网络、存储及服务运行条件:
- 关闭防火墙与SELinux:避免防火墙拦截PXE请求或SELinux限制服务权限。执行以下命令:
systemctl stop firewalld && systemctl disable firewalld # 关闭并禁用firewalld setenforce 0 # 临时关闭SELinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 永久关闭SELinux - 安装依赖包:通过EPEL源安装Cobbler及配套服务(DHCP、TFTP、HTTP等)。以CentOS为例:
yum install -y epel-release # 安装EPEL源 yum install -y cobbler cobbler-web tftp-server dhcp httpd xinetd pykickstart # 安装核心组件
二、安装与基础配置Cobbler
- 启动核心服务:启动Cobbler(管理部署流程)和HTTP(提供镜像/ Kickstart文件访问)服务,并设置开机自启:
systemctl start cobblerd && systemctl enable cobblerd systemctl start httpd && systemctl enable httpd - 验证初始配置:运行
cobbler check命令检查系统兼容性与配置缺失项(如未配置DHCP、TFTP目录权限等),根据提示修复问题(例如设置allow_dynamic_settings: 1以允许动态修改配置):sed -ri '/allow_dynamic_settings:/c\allow_dynamic_settings: 1' /etc/cobbler/settings systemctl restart cobblerd # 重启服务使配置生效
三、配置DHCP服务(可选但推荐)
若Cobbler管理DHCP(需开启manage_dhcp选项),需编辑DHCP模板文件(/etc/cobbler/dhcp.template),配置网段、网关、DNS及PXE启动参数:
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; # Cobbler服务器IP(需与settings中一致)
}
同步配置后,DHCP服务会自动分配IP并引导客户端至Cobbler服务器:
cobbler sync
四、导入操作系统镜像
将操作系统ISO镜像导入Cobbler,生成对应的系统镜像(存储于/var/www/cobbler/ks_mirror/目录),供客户端下载安装:
cobbler import --path=/path/to/centos7.iso --name=centos7.4 --arch=x86_64
--path:ISO镜像存放路径;--name:镜像名称(后续创建Profile时引用);--arch:系统架构(如x86_64、aarch64)。
五、创建Kickstart自动化安装文件
Kickstart文件定义了系统安装的自动化流程(分区、软件包、用户设置等),需存放在/var/lib/cobbler/kickstarts/目录。示例(CentOS 7):
cat > /var/lib/cobbler/kickstarts/centos7.ks << 'EOL'
# 安装源设置(指向Cobbler镜像服务器)
installurl --url="http://192.168.1.100/cobbler/ks_mirror/centos7.4"
# 系统密码(需提前加密,可通过`openssl passwd -1`生成)
rootpw --iscrypted $6$your_encrypted_password
# 关闭防火墙(生产环境建议开启并配置规则)
firewall --disabled
# 分区方案(自动清空磁盘并创建根分区、swap)
clearpart --all --initlabel
part / --fstype ext4 --size 10240 # 根分区10GB
part swap --size 2048 # swap分区2GB
# 安装基础软件包组
%packages
@base
@core
vim
wget
%end
# 安装后脚本(可选)
%post
echo "System deployed successfully!" > /etc/motd
%end
EOL
六、创建Cobbler Profile与System
-
创建Profile:关联操作系统镜像与Kickstart文件,定义安装模板:
cobbler profile add --name=centos7-profile --distro=centos7.4-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks--name:Profile名称(客户端选择安装模板时使用);--distro:导入的操作系统镜像名称(cobbler import生成的名称);--kickstart:Kickstart文件路径。
-
添加目标系统:将具体客户端系统纳入Cobbler管理(需指定MAC地址以实现PXE精准引导):
cobbler system add --name=client1 --profile=centos7-profile --interface=eth0 --mac=AA:BB:CC:DD:EE:FF --netboot-enabled=true--name:客户端系统名称(自定义);--interface:网络接口(如eth0、ens33);--mac:客户端MAC地址(必填,用于PXE识别);--netboot-enabled:启用网络启动(默认false,需设为true)。
七、同步配置与启动部署
- 同步配置:将Cobbler的所有配置(镜像、Profile、System)同步到TFTP、HTTP等服务目录:
cobbler sync - 客户端部署:
- 客户端设置BIOS/UEFI为PXE优先启动;
- 客户端重启后,自动从Cobbler服务器获取IP地址、下载启动文件(
pxelinux.0),并根据Profile调用Kickstart文件开始自动化安装; - 安装完成后,系统自动重启并进入桌面或命令行界面(取决于Kickstart配置)。
八、注意事项
- 网络环境:确保Cobbler服务器与客户端在同一局域网,避免跨网段导致DHCP/TFTP请求失败;
- 镜像完整性:导入ISO前需校验哈希值(如MD5、SHA256),避免镜像损坏影响安装;
- 密码安全:Kickstart文件中的
rootpw需使用加密格式(通过openssl passwd -1生成),避免明文泄露; - 日志排查:若部署失败,可通过
/var/log/cobbler/cobbler.log查看详细错误信息,定位问题根源。