centos

CentOS Cobbler与PXE引导详解

小樊
54
2025-09-24 08:24:53
栏目: 智能运维

CentOS Cobbler与PXE引导详解

一、PXE引导概述

PXE(Preboot Execution Environment,预启动执行环境) 是由Intel开发的网络引导技术,允许计算机通过网络从远程服务器下载引导镜像并加载操作系统,无需依赖本地存储设备(如硬盘、U盘)。其核心价值在于规模化、自动化部署,适用于数据中心、机房等需要批量安装系统的场景,可大幅减少人工重复操作。

1.1 PXE工作原理

PXE引导依赖Client/Server模式,通过以下协议实现网络启动:

典型流程

  1. 客户端发送DHCP请求→DHCP服务器分配IP并返回TFTP服务器信息;
  2. 客户端通过TFTP下载引导文件→加载内核和初始内存盘;
  3. 内核从HTTP/NFS服务器获取系统镜像及Kickstart文件;
  4. 根据Kickstart文件完成系统安装。

二、Cobbler简介

Cobbler是一款基于Python的开源系统部署工具,旨在简化PXE引导及自动化安装流程。其核心功能包括:

三、CentOS环境下Cobbler与PXE集成配置

3.1 环境准备

3.2 安装Cobbler及相关服务

使用Yum包管理器安装核心组件:

sudo yum install -y epel-release  # 安装EPEL源(可选,部分组件需额外依赖)
sudo yum install -y cobbler cobbler-web tftp-server dhcp httpd xinetd pykickstart

3.3 配置Cobbler主设置文件

编辑/etc/cobbler/settings,修改关键参数:

server = 192.168.1.100       # Cobbler服务器IP
next_server = 192.168.1.100  # TFTP服务器IP(通常与Cobbler服务器一致)
manage_dhcp = 1              # 允许Cobbler管理DHCP配置(需关闭手动DHCP服务)
pxe_just_once = 1            # 防止客户端重复PXE启动

3.4 配置DHCP服务

编辑/etc/dhcp/dhcpd.conf,添加以下内容(根据实际网络调整):

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;                    # TFTP服务器IP(与Cobbler服务器一致)
}

重启DHCP服务使配置生效:

sudo systemctl restart dhcpd
sudo systemctl enable dhcpd

3.5 配置TFTP服务

编辑/etc/xinetd.d/tftp,启用TFTP并设置根目录:

service tftp
{
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    group           = root
    server          = /usr/sbin/tftp
    server_args     = -s /var/lib/tftpboot  # TFTP根目录
    disable         = no                     # 启用服务
}

重启xinetd服务:

sudo systemctl restart xinetd
sudo systemctl enable xinetd

3.6 导入操作系统镜像

将CentOS ISO镜像(如CentOS-7-x86_64.iso)上传至服务器(如/tmp目录),使用Cobbler导入:

sudo cobbler import --path=/tmp/CentOS-7-x86_64.iso --name=centos7 --arch=x86_64

该命令会自动将ISO中的内核(vmlinuz)、初始内存盘(initrd.img)复制到TFTP根目录(/var/lib/tftpboot),并生成对应的安装源路径(如/var/www/cobbler/ks_mirror/centos7)。

3.7 创建Kickstart配置文件

Kickstart文件定义了系统安装的自动化参数,需手动创建(如/var/lib/cobbler/kickstarts/centos7.ks):

# 基础配置
lang en_US.UTF-8
keyboard us
timezone Asia/Shanghai
rootpw --plaintext yourpassword  # 生产环境建议使用加密密码

# 网络配置
network --bootproto=dhcp --onboot=yes

# 分区方案
clearpart --all --initlabel
part / --fstype=xfs --size=1 --grow
part swap --size=2048

# 安装源
url --url="http://$server/cobbler/ks_mirror/centos7"

# 引导加载器
bootloader --location=mbr --boot-drive=sda

3.8 添加Cobbler系统配置

创建系统配置,关联镜像、Kickstart文件及PXE启动:

sudo cobbler profile add --name=centos7-profile --distro=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.ks
sudo cobbler system add --name=centos7-client --profile=centos7-profile --netboot-enabled=true

3.9 同步配置并测试

执行同步命令,将所有配置应用到Cobbler服务:

sudo cobbler sync

测试PXE启动:

  1. 将客户端网卡设置为PXE启动优先(BIOS/UEFI中调整启动顺序);
  2. 启动客户端,若配置正确,客户端将从Cobbler服务器下载引导文件,进入Kickstart自动化安装界面。

四、注意事项

0
看了该问题的人还看了