on  it road.com

配置 FTP 服务

需要 FTP 服务才能将 OS 安装介质共享给 PXE 引导客户端。
一些系统管理员使用 NFS 而不是 FTP 服务。
但是,如果我们使用 NFS,那么当我们要将 Microsoft Windows 操作系统安装选项添加到我们的 PXE 引导服务器时,我们也必须配置 Samba。
因此,最好使用单一的通用技术来共享不同操作系统的操作系统安装介质。
HTTP 也是 FTP 的一个很好的替代方案,可用于共享 OS 安装介质。

使用 yum 安装 VSFTPD 服务器。

[root@pxe-server ~]# yum install -y vsftpd

启动并启用 vsftpd.service 。

[root@pxe-server ~]# systemctl enable vsftpd.service && systemctl start vsftpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

允许通过 Linux 防火墙的 FTP 服务。

[root@pxe-server ~]# firewall-cmd --permanent --add-service=ftp
success
[root@pxe-server ~]# firewall-cmd --reload
success

配置 PXE 引导服务器

将必要的引导加载程序(由 syslinux 提供)复制到 /var/lib/tftpboot 目录。

[root@pxe-server ~]# cp -v /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
->/usr/share/syslinux/pxelinux.0-> -> ->/var/lib/tftpboot/pxelinux.0->
[root@pxe-server ~]# cp -v /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
->/usr/share/syslinux/menu.c32-> -> ->/var/lib/tftpboot/menu.c32->
[root@pxe-server ~]# cp -v /usr/share/syslinux/mboot.c32 /var/lib/tftpboot/
->/usr/share/syslinux/mboot.c32-> -> ->/var/lib/tftpboot/mboot.c32->
[root@pxe-server ~]# cp -v /usr/share/syslinux/chain.c32 /var/lib/tftpboot/
->/usr/share/syslinux/chain.c32-> -> ->/var/lib/tftpboot/chain.c32->

创建必要的目录。

[root@pxe-server ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@pxe-server ~]# mkdir -p /var/lib/tftpboot/networkboot/rhel7
[root@pxe-server ~]# mkdir /var/ftp/pub/rhel7

将 RHEL 7.5 ISO 的内容复制到 /var/ftp/pub/rhel7 。
我们已经在 /mnt/iso 安装了 RHEL 7.5 ISO,因此,我们使用以下命令来复制 ISO 文件的内容。

[root@pxe-server ~]# cp -rf /mnt/iso/ /var/ftp/pub/rhel7

将 RHEL 7.5 的引导镜像复制到 /var/lib/tftpboot/networkboot/rhel7 目录。

[root@pxe-server ~]# cp /var/ftp/pub/rhel7/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/networkboot/rhel7/

配置 PXE 引导菜单并其中添加 Red Hat Enterprise Linux 7 安装选项。

[root@pxe-server ~]# cat >> /var/lib/tftpboot/pxelinux.cfg/default << EOF
> default menu.c32
> prompt 0
> timeout 30
> menu title JackLi's PXE Menu
> label Install RHEL 7.5
> kernel /networkboot/rhel7/vmlinuz
> append initrd=/networkboot/rhel7/initrd.img inst.repo=ftp://192.168.1.41/pub/rhel7
> EOF

将新系统连接到网络并启动它。
新系统会自动从我们的 DHCP Server 获取 IP 地址,并从 PXE Server 获取 PXE 启动菜单并显示如下:

由于到目前为止我们只有一个安装选项,因此,请按 <ENTER> 开始安装。

我们已经在 RHEL/CentOS 7 中成功设置了一个 PXE 引导服务器。

安装 Syslinux

Syslinux 包提供了各种引导加载程序,包括 FAT 文件系统以引导到 Microsoft Windows 环境。

通过 yum 安装 syslinux 包。

[root@pxe-server ~]# yum install -y syslinux

配置 TFTP 服务

使用 yum 安装 TFTP(普通 FTP)服务器。

[root@pxe-server ~]# yum install -y tftp-server

启动并启用 tftp.service 。

[root@pxe-server ~]# systemctl start tftp.service && systemctl enable tftp.service

允许通过 Linux 防火墙的 TFTP 服务。

[root@pxe-server ~]# firewall-cmd --permanent --add-service=tftp
success
[root@pxe-server ~]# firewall-cmd --reload
success

配置 DHCP 服务

使用 ssh 连接到 pxe-server.on-itroad.com。

使用 yum 安装 DHCP 服务器。

[root@pxe-server ~]# yum install -y dhcp

配置DHCP服务。

[root@pxe-server ~]# cat >> /etc/dhcp/dhcpd.conf << EOF
> #DHCP configuration for PXE boot server
> ddns-update-style interim;
> ignore client-updates;
> authoritative;
> allow booting;
> allow bootp;
> allow unknown-clients;
>
> subnet 192.168.1.0
> netmask 255.255.255.0
> {
> range 192.168.1.100 192.168.1.199;
> option domain-name-servers 192.168.1.2;
> option domain-name "on-itroad.com";
> option routers 192.168.1.2;
> option broadcast-address 192.168.1.255;
> default-lease-time 600;
> max-lease-time 7200;
> #PXE boot server
> next-server 192.168.1.41;
> filename "pxelinux.0";
> }
> EOF
[root@pxe-server ~]#

启动并启用 dhcpd.service 。

[root@pxe-server dhcp]# systemctl start dhcpd.service && systemctl enable dhcpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

允许 DHCP 服务通过 Linux 防火墙。
此外,TFTP 服务器的 IP 地址的传播需要 proxy-dhcp 端口。

[root@pxe-server ~]# firewall-cmd --permanent --add-service={dhcp,proxy-dhcp}
success
[root@pxe-server ~]# firewall-cmd --reload
success
在 RHEL/CentOS 7 中设置 PXE 引导服务器

PXE 是P reboot eX ecution Environment 的缩写。
它是客户端-服务器环境的标准化规范,其中启用 PXE 的客户端可以使用从预配置的 PXE 引导服务器检索的 PXE 引导镜像来引导其机器。

在本文中,我们将在 RHEL/CentOS 7 中设置一个 PXE 引导服务器,并添加选项以其中安装 Red Hat Enterprise Linux 7.

我们的 PXE 启动服务器需要不同的服务,如 DHCP、TFTP 和 FTP 才能正常运行。
不过,没有必要在一台机器上配置所有这些服务,如果我们有一个正在运行的 FTP 服务器,我们可以将所需的安装文件放在现有的 FTP 服务器上。
同样,如果我们为网络配置了 DHCP 服务器,我们可以其中定义 DHCP 配置。

但是,为简单起见,我们将在同一台机器上配置所有这些服务。

日期:2020-09-17 00:12:57 来源:oir作者:oir