PXE + Kickstart无人值守安装

目录

一、PXE与Kickstart协同原理

1.1 核心流程

二、环境搭建步骤

2.1 前置条件

2.2 配置Kickstart应答文件

步骤1:生成ks.cfg文件

步骤2:部署ks.cfg文件

2.3 修改PXE引导配置

2.4 启动客户端测试

三、常见问题与解决

3.1 Kickstart文件未生效

3.2 分区失败

3.3 软件包安装错误

四、优化与进阶

4.1 多系统支持

4.2 动态生成Kickstart

五、总结

5.1 核心价值

5.2 避坑经验


一、PXE与Kickstart协同原理

1.1 核心流程

  • PXE:负责网络引导客户端,加载内核和初始化文件。

  • Kickstart:通过预定义的ks.cfg应答文件,自动化完成系统安装配置(分区、用户、软件包等)。

  • 整体流程


 

二、环境搭建步骤

2.1 前置条件

  • 已完成PXE基础环境搭建(DHCP、TFTP、HTTP服务)。

  • 准备目标系统的ISO镜像(如CentOS 7)。


2.2 配置Kickstart应答文件

步骤1:生成ks.cfg文件
  • 方法1:手动编写

# Kickstart配置文件示例(CentOS 7)
# 版本声明
version=DEVEL
# 系统安装源
url --url=http://192.168.1.10/centos
# 系统语言
lang en_US.UTF-8
# 键盘布局
keyboard us
# 时区
timezone Asia/Shanghai
# 根密码
rootpw --plaintext your_password
# 分区方案
clearpart --all --initlabel
autopart --type=lvm
# 安装模式
graphical
# 软件包选择
%packages
@^minimal
vim
%end
# 安装后脚本
%post
echo "Hello, Auto-Install!" > /etc/motd
%end 

  •  方法2:通过已有系统生成

在已安装的系统上执行:

yum install pykickstart -y
ksvalidator /root/anaconda-ks.cfg  # 验证文件有效性

步骤2:部署ks.cfg文件

将文件放置到HTTP服务目录:

cp ks.cfg /var/www/html/
chmod 644 /var/www/html/ks.cfg

 

2.3 修改PXE引导配置

编辑TFTP服务器中的引导菜单文件(/var/lib/tftpboot/pxelinux.cfg/default):

LABEL auto_install
  MENU LABEL Auto Install CentOS 7 via Kickstart
  KERNEL vmlinuz
  APPEND initrd=initrd.img ks=http://192.168.1.10/ks.cfg  #替换为自己的ip

2.4 启动客户端测试

  • 客户端开机选择PXE启动,自动执行无人值守安装。

  • 观察安装过程是否跳过手动交互步骤。


 

三、常见问题与解决

3.1 Kickstart文件未生效

  • 现象:安装过程仍提示手动配置。

  • 排查

    • 检查ks.cfg路径是否正确(客户端可访问性测试:curl http://服务器IP/ks.cfg)。

    • 验证文件语法:ksvalidator ks.cfg

3.2 分区失败

  • 现象:安装时报错Partitioning failed: no space left on device

  • 解决

    • ks.cfg中明确分区规则:

part /boot --fstype=ext4 --size=1024
part swap --size=4096
part / --fstype=ext4 --grow --size=1

3.3 软件包安装错误

  • 现象:安装时提示Package X not found

  • 解决

    • 确认镜像源中是否存在该软件包。

    • %packages段中指定正确的包组名称(如@Development Tools)。


四、优化与进阶

4.1 多系统支持

  • pxelinux.cfg/default中定义多个启动项,指向不同的Kickstart文件:

    LABEL centos7
      MENU LABEL Install CentOS 7
      KERNEL centos7/vmlinuz
      APPEND initrd=centos7/initrd.img ks=http://192.168.1.10/ks_centos7.cfg
    
    LABEL ubuntu2004
      MENU LABEL Install Ubuntu 20.04
      KERNEL ubuntu2004/linux
      APPEND initrd=ubuntu2004/initrd.gz ks=http://192.168.1.10/ks_ubuntu.cfg

4.2 动态生成Kickstart

  • 结合Web服务(如Flask)动态生成ks.cfg,实现按需定制化安装。


五、总结

5.1 核心价值

  • 效率飞跃:批量部署100台服务器仅需启动PXE,后续全程自动化。

  • 零接触安装:适合IDC机房、云环境等无法物理介入的场景。

5.2 避坑经验

  • 严格验证配置:通过ksvalidator和虚拟机测试确保应答文件正确。

  • 日志监控:关注/var/log/anaconda/journal.log定位安装错误。


动手实践Tips

  1. 首次部署建议在虚拟机中验证。

  2. 使用virt-managerVirtualBox模拟多客户端场景。


立即体验“一杯咖啡的时间装好100台服务器”的高效运维!
(注:生产环境建议结合VLAN隔离PXE网络,避免广播风暴!) 


 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东窗西篱梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值