文章目录
实现 Kickstart 无人值守安装
Kickstart 是 Red Hat 系统的一个工具,用于自动化系统安装。通过预先配置的应答文件,可以实现无人值守的系统安装。
1. 安装Kickstart和配置应答文件(图形化界面)
-
安装 Kickstart 配置工具:
yum install -y system-config-kickstart # 安装 Kickstart 配置工具
-
打开 Kickstart 配置程序:
可以通过桌面菜单“应用程序”–>“系统工具”–>“Kickstart” 打开,或执行
system-config-kickstart
命令。 -
配置 Kickstart 选项:
-
基本配置:
- 默认语言设为“中文(简体)”
- 时区设为“Asia/Shanghai”
- 设置 root 密码
- 高级配置中勾选“安装后重启”。
-
安装方法:
- 选择 FTP
- FTP 服务器:
ftp://192.168.80.10
- FTP 目录:
centos7
-
引导装载程序选项:
- 安装类型:安装新引导装载程序
- 安装选项:在主引导记录(MBR)中安装引导装载程序
-
分区信息:
- 清除主引导记录
- 删除所有现存分区
- 初始化磁盘标签
- 添加分区:
/boot
,文件系统类型:xfs,固定大小:500Mswap
,固定大小: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
-
-
-
保存生成的 Kickstart 应答文件:
将 Kickstart 文件保存为
ks.cfg
(默认保存在root/ks.cfg
),并复制到 FTP 服务器的/var/ftp
目录下。cp /root/ks.cfg /var/ftp/ks.cfg # 将 Kickstart 应答文件复制到 FTP 服务器
-
配置安装软件包
可以根据实际需求将/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
文件,并加入相应的配置指令。以下是详细的配置步骤:
- 基本配置
# 设置语言
lang zh_CN.UTF-8
# 设置时区
timezone Asia/Shanghai
# 设置 root 密码(明文密码)
rootpw --plaintext your_root_password
# 安装后重启
reboot
- 安装方法
# 选择安装方法为 FTP,并指定服务器和目录
url --url="<ftp://192.168.80.10/centos7>"
- 引导装载程序选项
# 安装新的引导装载程序到主引导记录(MBR)
bootloader --location=mbr
- 分区信息
# 清除主引导记录
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
- 网络配置
# 配置网络设备 ens33 ,使用 DHCP
network --bootproto=dhcp --device=ens33 --onboot=yes
- 防火墙配置
# 禁用防火墙
firewall --disabled
# 禁用 SELinux
selinux --disabled
- 软件包安装
%packages
@^minimal
@debugging
@compat-libraries
%end
- 安装后脚本配置 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 仓库。