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



实现 Kickstart 无人值守安装

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

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

  1. 安装 Kickstart 配置工具

    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

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

        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 目录下。

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

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

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

    vim /var/ftp/ks.cfg
    
    %packages
    @^minimal
    %end
    

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

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

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源是否更改:

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

在这里插入图片描述

在这里插入图片描述

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

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

  1. 基本配置
# 设置语言
lang zh_CN.UTF-8

# 设置时区
timezone Asia/Shanghai

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

# 安装后重启
reboot
  1. 安装方法
# 选择安装方法为 FTP,并指定服务器和目录
url --url="<ftp://192.168.80.10/centos7>"
  1. 引导装载程序选项
# 安装新的引导装载程序到主引导记录(MBR)
bootloader --location=mbr
  1. 分区信息
# 清除主引导记录
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. 网络配置
# 配置网络设备 ens33 ,使用 DHCP
network --bootproto=dhcp --device=ens33 --onboot=yes
  1. 防火墙配置
# 禁用防火墙
firewall --disabled

# 禁用 SELinux
selinux --disabled
  1. 软件包安装
%packages
@^minimal
@debugging
@compat-libraries
%end
  1. 安装后脚本配置 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

完整的 ks.cfg 文件示例

# 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 仓库。

  • 25
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值