配置PXE预启动执行环境:Kickstart自动化无人值守安装


文章目录

  • [实现 Kickstart 无人值守安装](#实现 Kickstart 无人值守安装)
    • [1. 安装Kickstart和配置应答文件(图形化界面)](#1. 安装Kickstart和配置应答文件(图形化界面))
    • [2. 配置 PXE 菜单支持 Kickstart 无人值守安装](#2. 配置 PXE 菜单支持 Kickstart 无人值守安装)
    • [3. 验证 Kickstart 无人值守安装](#3. 验证 Kickstart 无人值守安装)
    • [4. 拓展:命令行配置应答文件(命令行界面)](#4. 拓展:命令行配置应答文件(命令行界面))

实现 Kickstart 无人值守安装

Kickstart 是 Red Hat 系统的一个工具,用于自动化系统安装。通过预先配置的应答文件,可以实现无人值守的系统安装。

1. 安装Kickstart和配置应答文件(图形化界面)

  1. 安装 Kickstart 配置工具

    bash 复制代码
    yum install -y system-config-kickstart  
    # 安装 Kickstart 配置工具
  2. 打开 Kickstart 配置程序

    可以通过桌面菜单"应用程序"-->"系统工具"-->"Kickstart" 打开,或执行 system-config-kickstart 命令。

  3. 配置 Kickstart 选项

    • 基本配置

      • 默认语言设为"中文(简体)"
      • 时区设为"Asia/Shanghai"
      • 设置 root 密码
      • 高级配置中勾选"安装后重启"。
    • 安装方法

      • 选择 FTP
      • FTP 服务器:ftp://192.168.80.10
      • FTP 目录:centos7
    • 引导装载程序选项

      • 安装类型:安装新引导装载程序
      • 安装选项:在主引导记录(MBR)中安装引导装载程序
    • 分区信息

      • 清除主引导记录
      • 删除所有现存分区
      • 初始化磁盘标签
      • 添加分区:
        • /boot,文件系统类型:xfs,固定大小:500M
        • swap,固定大小:4096M
        • /home,文件系统类型:xfs,固定大小:4096M
        • /,文件系统类型:xfs,使用磁盘上全部未使用空间
    • 网络配置

      • 添加网络设备 ens33
      • 网络类型设为 DHCP
    • 防火墙配置

      • 禁用 SELinux、禁用防火墙
    • 软件包安装

      • 选择"最小安装",并在详细包中选择"调试工具"和"兼容性库"。
      • 页面可能会报错:"由于下载软件包信息失败,软件包选择被禁止。",在后续操作再配置。
    • 安装后脚本配置YUM仓库

      • 勾选"使用解释程序":/bin/bash

      • 脚本编辑(注意格式):

        bash 复制代码
        rm -rf /etc/yum.repos.d/*
        echo '[local]
        name=local
        baseurl=ftp://192.168.80.10/centos7
        enabled=1
        gpgcheck=0' > /etc/yum.repos.d/local.repo
  4. 保存生成的 Kickstart 应答文件

    将 Kickstart 文件保存为 ks.cfg (默认保存在 root/ks.cfg ),并复制到 FTP 服务器的 /var/ftp 目录下。

    bash 复制代码
    cp /root/ks.cfg /var/ftp/ks.cfg
    # 将 Kickstart 应答文件复制到 FTP 服务器
  5. 配置安装软件包

    可以根据实际需求将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg文件中,只需要复制%packages 到%end 部分即可。

    ks.cfg 文件中指定要安装的软件包。如,最小化安装时使用以下内容:

    bash 复制代码
    vim /var/ftp/ks.cfg
    
    %packages
    @^minimal
    %end

2. 配置 PXE 菜单支持 Kickstart 无人值守安装

/var/lib/tftpboot/pxelinux.cfg/default 文件中,添加 Kickstart 启动入口:

bash 复制代码
vim /var/lib/tftpboot/pxelinux.cfg/default	

default auto 							
prompt 0 	#设置是否等待用户选择,"0"表示不等待用户控制

label auto								
kernel vmlinuz	#kernel 和 append用来定义引导参数
append initrd=initrd.img method=ftp://192.168.80.10/centos7 ks=ftp://192.168.80.10/ks.cfg
#添加 ks 引导参数以指定 ks.cfg 应答文件的 URL 路径

# 方式二,直接配置入口,不建议,未测试
label linux ks  # 无人值守安装引导入口
kernel vmlinuz
append ks=ftp://192.168.80.10/ks.cfg initrd=initrd.img method=ftp://192.168.80.10/centos7

3. 验证 Kickstart 无人值守安装

每次客户端通过 PXE 引导时,将自动加载 ks.cfg 配置文件,并按照其中的指示安装 CentOS 7 系统,无需人工干预。

登录系统后验证YUM源是否更改:

bash 复制代码
cat /etc/yum.repos.d/local.repo  
# 验证本地 YUM 源配置是否正确

4. 拓展:命令行配置应答文件(命令行界面)

在命令行中配置 Kickstart 文件,需手动编辑 ks.cfg 文件,并加入相应的配置指令。以下是详细的配置步骤:

  1. 基本配置
bash 复制代码
# 设置语言
lang zh_CN.UTF-8

# 设置时区
timezone Asia/Shanghai

# 设置 root 密码(明文密码)
rootpw --plaintext your_root_password

# 安装后重启
reboot
  1. 安装方法
bash 复制代码
# 选择安装方法为 FTP,并指定服务器和目录
url --url="<ftp://192.168.80.10/centos7>"
  1. 引导装载程序选项
bash 复制代码
# 安装新的引导装载程序到主引导记录(MBR)
bootloader --location=mbr
  1. 分区信息
bash 复制代码
# 清除主引导记录
zerombr

# 删除所有现存分区
clearpart --all --initlabel

# 添加分区
part /boot --fstype="xfs" --size=500
part swap --size=4096
part /home --fstype="xfs" --size=4096
part / --fstype="xfs" --grow --size=1
  1. 网络配置
bash 复制代码
# 配置网络设备 ens33 ,使用 DHCP
network --bootproto=dhcp --device=ens33 --onboot=yes
  1. 防火墙配置
bash 复制代码
# 禁用防火墙
firewall --disabled

# 禁用 SELinux
selinux --disabled
  1. 软件包安装
bash 复制代码
%packages
@^minimal
@debugging
@compat-libraries
%end
  1. 安装后脚本配置 YUM 仓库
bash 复制代码
%post --interpreter /bin/bash
rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=ftp://192.168.80.10/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
%end

完整的 ks.cfg 文件示例

bash 复制代码
# Kickstart 配置文件

# 1. 基本配置
lang zh_CN.UTF-8
timezone Asia/Shanghai
rootpw --plaintext your_root_password
reboot

# 2. 安装方法
url --url="<ftp://192.168.80.10/centos7>"

# 3. 引导装载程序选项
bootloader --location=mbr

# 4. 分区信息
zerombr
clearpart --all --initlabel
part /boot --fstype="xfs" --size=500
part swap --size=4096
part /home --fstype="xfs" --size=4096
part / --fstype="xfs" --grow --size=1

# 5. 网络配置
network --bootproto=dhcp --device=ens33 --onboot=yes

# 6. 防火墙配置
firewall --disabled
selinux --disabled

# 7. 软件包安装
%packages
@^minimal
@debugging
@compat-libraries
%end

# 8. 安装后脚本配置 YUM 仓库
%post --interpreter /bin/bash
rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=ftp://192.168.80.10/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
%end

说明

  • rootpw:设置 root 用户的密码,可以用 -iscrypted 选项加密存储密码。
  • network:配置网络设备,默认设置 ens33 使用 DHCP。
  • %post:定义安装后脚本,配置 YUM 仓库。

相关推荐
大树886 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush46 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5207 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz7 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工7 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智8 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩8 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_8 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化