网站搜索

使用 PXE 服务器和 Kickstart 文件自动安装多个 RHEL/CentOS 7 发行版


本文是我之前在 RHEL/CentOS 7 上安装 PXE 引导环境的扩展,重点介绍如何使用从本地 FTP 服务器。

这种安装的环境准备已经在前面有关 PXE 服务器设置的教程中进行了处理,唯一缺少的关键是 Kickstart 文件,将在本教程中进一步讨论。

创建自定义 Kickstart 文件(您可以进一步将其用于多个安装)的最简单方法是手动执行 RHEL/CentOS 7 安装,并在安装过程完成后复制名为 的文件anaconda-ks.cfg(驻留在 /root 路径中)到可访问的网络位置,并指定 initrd 引导参数 inst.ks= protocol://path/to/kickstart.fileto PXE 菜单配置文件。

要求

  1. 在 RHEL/CentOS 7 上设置 PXE 网络引导服务器

本教程和 Kickstart 文件配置仅涵盖 RHEL/CentOS 7 的最小安装,没有图形安装,基本上 Kikstart 文件是由之前的 RHEL/CentOS 7 最小安装过程生成的。

  1. CentOS 7 最小安装过程
  2. RHEL 7 最小安装过程

如果您需要一个涵盖GUI安装和特定分区表的Kickstart文件,我建议您首先执行可定制的
在虚拟化环境中图形化安装 RHEL/CentOS 7 并使用生成的 Kickstart 文件用于将来的 GUI 安装。

第 1 步:创建 Kiskstart 文件并将其复制到 FTP 服务器路径

1. 第一步,转到 PXE 计算机 /root 目录并将名为 anaconda-ks.cfg 的文件复制到 Vsftpd 默认服务器路径 (/var/ftp/pub) – 也是在 PXE 网络引导上配置的 RHEL/CentOS 7 本地镜像安装源的路径服务器 – 步骤 6(请参阅上面的 PXE 服务器设置文章)。

cp anaconda-ks.cfg  /var/ftp/pub/
chmod 755 /var/ftp/pub/anaconda-ks.cfg

2. 复制文件后,使用您喜欢的文本编辑器打开它并进行以下最小更改。

nano /var/ftp/pub/anaconda-ks.cfg
  1. –url 替换为您的网络安装源位置:例如:–url=ftp://192.168.1.25/pub/
  2. 如果您在安装过程中手动配置了网络接口,请将 network –bootproto 替换为 dhcp

下面摘录了 Kickstart 文件的外观。

#version=RHEL7
System authorization information
auth --enableshadow --passalgo=sha512

Use network installation
url --url="ftp://192.168.1.25/pub/"
Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
System language
lang en_US.UTF-8

Network information
network  --bootproto=dhcp --device=eno16777736 --ipv6=auto --activate
network  --hostname=localhost.localdomain
Root password
rootpw --iscrypted $6$RMPTNRo5P7zulbAR$ueRnuz70DX2Z8Pb2oCgfXv4qXOjkdZlaMnC.CoLheFrUF4BEjRIX8rF.2QpPmj2F0a7iOBM3tUL3tyZNKsDp50
System services
services --enabled="chronyd"
System timezone
timezone Europe/Bucharest --isUtc
System bootloader configuration
bootloader --location=mbr --boot-drive=sda
Partition clearing information
clearpart --none --initlabel
Disk partitioning information
part pv.20 --fstype="lvmpv" --ondisk=sda --size=19979
part /boot --fstype="xfs" --ondisk=sda --size=500
volgroup centos --pesize=4096 pv.20
logvol /  --fstype="xfs" --grow --maxsize=51200 --size=1024 --name=root --vgname=centos
logvol swap  --fstype="swap" --size=2048 --name=swap01 --vgname=centos

%packages
@compat-libraries
@core
wget
net-tools
chrony

%end

有关更高级的 Kickstart 文件选项和语法,请随时阅读 RHEL 7 Kickstart 文档。

3. 在尝试使用此文件进行安装过程之前,请务必使用 Pykickstart 包中包含的 ksvalidator 命令验证该文件,尤其是是否已执行手动自定义。安装 Pykickstart 软件包并通过发出以下命令验证您的 Kickstart 文件。

yum install pykickstart
ksvalidator /var/ftp/pub/anaconda-ks.cfg

4. 最后一次验证是为了确保可以从您指定的网络位置访问 Kickstart 文件 - 在本例中为通过以下 URL 地址定义的 FTP 本地镜像安装源

ftp://192.168.1.25/pub/

步骤 2:将 Kikstart 安装标签添加到 PXE 服务器配置

5. 为了从 PXE 菜单访问自动安装 RHEL/CentOS 7 选项,请将以下标签添加到 PXE 默认文件配置中。

nano /var/lib/tftpboot/pxelinux.cfg/default

PXE 菜单标签摘录。

对于 RHEL 7
label 5
menu label ^5) Install RHEL 7 x64 with Local Repo using Kickstart
kernel vmlinuz
append initrd=initrd.img inst.ks=ftp://192.168.1.25/pub/anaconda-ks.cfg inst.vnc inst.vncpassword=password
对于 CentOS 7
label 5
menu label ^5) Install CentOS 7 x64 with Local Repo using Kickstart
kernel vmlinuz
append initrd=initrd.img inst.ks=ftp://192.168.1.25/pub/anaconda-ks.cfg inst.vnc inst.vncpassword=password

正如您从本示例中看到的,可以通过 VNC 使用密码(相应地替换 VNC 密码)来监督自动安装,并且 Kickstart 文件位于 PXE 服务器本地,并由 initrd 指定 启动参数 inst.ks= FTP 网络位置(如果您使用其他安装方法,例如 HTTP、HTTPS、NFS 或远程安装源和 Kickstart 文件,请相应地替换协议和网络位置)。

步骤 3:配置客户端使用 Kickstart 自动安装 RHEL/CentOS 7

6. 要自动安装 RHEL/CentOS 7 并监督整个安装过程(尤其是在无头服务器上),请从 BIOS 指示您的客户端计算机
要从网络启动,请等待几秒钟,然后按 F8Enter 键,然后从 PXE 菜单中选择 Kickstart 选项。

7.内核ramdisk加载并检测到Kickstart文件后,安装过程将自动开始,无需用户方任何干预。如果您想观看安装过程,请使用安装程序为您提供的地址从另一台计算机连接 VNC 客户端并欣赏视图。

8.安装过程完成后,使用root帐户和上次安装时使用的密码登录新安装的系统(
一个您复制的 Kickstart 文件)并通过运行 passwd 命令更改您的客户端 root 密码。

就这样! 自动 Kickstart 安装为系统管理员提供了很多好处,因为他们必须在短时间内在多台计算机上同时执行系统安装,而无需手动干扰安装过程。