配置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 仓库。

相关推荐
Peter_chq6 分钟前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮1 小时前
Linux 使用中的问题
linux·运维
dsywws2 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零3 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
wclass-zhengge3 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱3 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
点点滴滴的记录3 小时前
RPC核心实现原理
网络·网络协议·rpc
昔我往昔4 小时前
阿里云文本内容安全处理
安全·阿里云·云计算
free4 小时前
netstat中sendq/recvq用于排查发送端发送数据的问题
服务器
小林熬夜学编程4 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法