目录
二、PXE(Preboot Execution Environment)的主要组件
2、DHCP服务器(Dynamic Host Configuration Protocol Server)
3、TFTP服务器(Trivial File Transfer Protocol Server)
4、FTP服务器(File Transfer Protocol Server)
7)与DHCP那台机器处于同一网段 8)开启虚拟机即可,出现这个不用管,点是就行
1)安装system-config-kickstart,使用图形界面配置
一、什么是PXE?
PXE(Preboot Execution Environment)是一种远程网络安装操作系统的方法。它通过网络引导和远程控制技术,允许用户在没有本地存储介质(如硬盘或光盘)的情况下,通过网络进行引导和加载操作系统。PXE技术允许计算机在启动时通过网络请求并获取所需的引导文件和操作系统镜像,以实现远程安装和启动操作系统的功能。
PXE技术的基本原理是,当计算机启动时,它会发送一个特殊的网络请求,称为DHCP请求,以获取IP地址和其他网络配置信息。其中包含了一个PXE相关的选项,告诉DHCP服务器计算机希望通过网络引导。DHCP服务器响应请求并提供所需的IP地址、TFTP服务器地址和其他配置信息。
接下来,计算机通过TFTP(Trivial File Transfer Protocol)从PXE服务器上下载引导文件和配置文件。引导文件告诉计算机如何进一步加载操作系统镜像,并指示它从哪里下载镜像文件。计算机通过TFTP下载镜像文件,并在本地存储器(如内存)中加载和运行操作系统。
PXE技术广泛用于企业、学校等需要大规模部署和管理计算机的场景。它提供了一种便捷、快速、集中和自动化的方法,远程安装和启动操作系统,减少了物理介质的使用和手动操作的成本和工作量。
二、PXE(Preboot Execution Environment)的主要组件
1、PXE服务器(PXE Server)
PXE服务器提供了引导所需的各种服务和资源。它通常由DHCP服务器、TFTP服务器和FTP服务器组成。
2、DHCP服务器(Dynamic Host Configuration Protocol Server)
DHCP服务器是PXE网络中的重要组件,它负责为客户端分配IP地址和其他网络配置信息,如网关、子网掩码等。通过DHCP服务器,PXE客户端可以获取到PXE启动所需的引导文件和相关信息。
3、TFTP服务器(Trivial File Transfer Protocol Server)
TFTP服务器主要用于传输PXE启动所需的引导文件和相关配置文件。PXE客户端通过TFTP服务器下载这些文件,以进行远程安装操作系统。
4、FTP服务器(File Transfer Protocol Server)
FTP服务器用于存储和传输安装镜像文件和其他安装资源。PXE客户端可以通过FTP服务器下载操作系统的镜像文件,以进行安装。
5、 PXE客户端(PXE Client)
PXE客户端是远程安装操作系统的目标设备,它通过PXE网络进行引导和安装。PXE客户端需要支持PXE协议,并正确配置引导顺序,以从网络中获取引导文件和安装资源。
综上所述,PXE的主要组件包括PXE服务器(包括DHCP服务器、TFTP服务器和FTP服务器)以及PXE客户端。它们共同协作,实现了远程网络安装操作系统的功能。
三、PXE的优点
1、省时省力:PXE允许通过网络远程引导和安装操作系统,省去了手动制作光盘或USB等安装介质的繁琐步骤,节省了时间和人力成本。
2、高效批量部署:PXE网络批量装机能够同时在多台计算机上进行远程操作系统安装,适用于大规模部署和管理计算机的场景,如企业、学校、实验室等。
3、灵活性和易于更新:通过PXE,可以轻松地在网络上更新操作系统镜像和配置文件,使得操作系统的维护和更新更加灵活和方便。
4、中心化管理:PXE服务器的设置和配置可以实现集中管理,统一控制操作系统的安装和部署,提高管理效率和一致性。
四、PXE的应用场景
1、IT部门:企业的IT部门可以使用PXE来进行远程操作系统的部署和更新,快速批量安装和配置新的计算机,或者修复故障系统。
2、教育机构:学校、培训机构等教育机构可以利用PXE来进行学生机房的操作系统统一部署和管理,方便教学和实验环境的建设。
3、实验室环境:科研机构、实验室等研究单位可以使用PXE来搭建实验环境,方便远程操作系统的加载和配置,以及实验数据的收集和管理。
4、虚拟化环境:在虚拟化环境中,PXE可以实现自动化的虚拟机部署和启动,提高资源利用效率和管理便捷性。
除了上述应用场景外,还有很多可以用到PXE装机。
五、配置PXE装机
(一)手动进行安装
本文采用FTP的方式进行批量装机测试
1、基础环境配置
1)关闭防火墙以及开机自启
systemctl stop firewalld && systemctl disable firewalld
2)关闭SELinux以及开机自启
setenforce 0
vim /etc/selinux/config
将SELINUX=enabled改为SELINUX=disabled
3)关闭图形化网络工具以及开机自启
systemctl stop NetworkManager && systemctl disable NetworkManager
4)配置静态网络
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.111.254
PREFIX=24
注: 这里配置不需要给网关以及DNS。
5)重启网络
systemctl restart network
ip a
2、配置yum源
cd /etc/yum.repos.d/
ls
创建备份目录进行备份(我们这里使用本地源就可以)
mkdir backup
yum.repos.d]# mv CentOS-* backup/
vim local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
进行挂载
mount /dev/sr0 /mnt/
3、安装FTP
yum install -y vsftpd
启动FTP
systemctl start vsftpd
拷贝系统文件
mkdir /var/ftp/centos7
cp -r /mnt/* /var/ftp/centos7/
sync
注:这里可以先创建目录,然后将光盘文件挂载至目录下,这样无需进行拷贝
命令解析:
sync命令是一个Linux/Unix命令,用于强制将缓冲区中的数据写入磁盘中,以确保数据的持久性存储。
当我们对文件进行修改时,操作系统会将修改的数据先存储在内存的缓冲区中,而不是直接写入磁盘。这样可以提高数据访问的速度。但是,在某些情况下(如系统关机、崩溃等),缓冲区中的数据可能会丢失。为了避免这种情况发生,我们可以使用sync命令将缓冲区中的数据强制刷新到磁盘上。
执行sync命令后,操作系统会将所有待写入磁盘的数据立即进行刷新,同时还会将文件系统的元数据(如inode表、目录结构等)更新到磁盘。这样可以确保在意外断电等情况下,文件系统不会损坏或数据丢失。
一般来说,当我们要关机之前,建议先执行sync命令,以确保所有修改过的文件都被持久化到磁盘上,从而保证数据的完整性和一致性。
4、安装DHCP
yum install -y dhcp
配置DHCP
原/etc/dhcp/dhcpd.conf 配置文件下没有内容,这里我们需要将配置文件拷贝过来
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
注释:27~28行、32~35行、41-44行 ,更改如下行(需要复制,删除前面行数):
47 subnet 192.168.111.0 netmask 255.255.255.0 {
48 range 192.168.111.10 192.168.111.253;
49 #option domain-name-servers ns1.internal.example.org;
50 #option domain-name "internal.example.org";
51 option routers 192.168.111.254;
52 option broadcast-address 192.168.111.255;
53 default-lease-time 600;
54 max-lease-time 7200;
55 filename "pxelinux.0";
56 next-server 192.168.111.254;
57 }
内容解析:
47行 subnet 192.168.111.0 netmask 255.255.255.0 :定义了一个子网,其网络地址为192.168.111.0,子网掩码为255.255.255.0。
48行 range 192.168.111.10 192.168.111.253 :指定了DHCP服务器可以分配的IP地址范围,从192.168.111.10到192.168.111.253。
51行 option routers 192.168.111.254 :指定了默认网关(路由器)的IP地址,即192.168.111.254。
52行 option broadcast-address 192.168.111.255 :指定了广播地址,即该子网下所有设备都会收到的广播消息的目标地址。
53行 default-lease-time 600 :指定了租约的默认时间,即分配的IP地址的有效期,单位为秒。
54行 max-lease-time 7200 :指定了租约的最大时间,即分配的IP地址的最大有效期,单位为秒。
55行 filename "pxelinux.0" :指定了PXE引导文件的名称,此处为"pxelinux.0"。
56行 next-server 192.168.111.254 :指定了TFTP服务器(即PXE服务器)的IP地址,这是PXE客户端下载引导文件和配置文件的服务器。
在上述配置中,还有两行被注释掉(以#开头)的选项,分别是DNS服务器和域名的设置,即可选的DNS解析服务器和域名信息。根据实际需求,可以取消注释并修改相应的配置信息。
启动服务
systemctl start dhcpd
5、安装TFTP
yum install -y xinetd
yum install -y tftp-server
配置TFTP
vim /etc/xinetd.d/tftp
将disable改为no
启动服务
systemctl start tftp
6、 安装SELinux
yum install -y syslinux
- 准备pxelinx.0文件、引导文件、内核文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
cd /mnt/images/pxeboot/
ls
cp initrd.img vmlinuz /var/lib/tftpboot/
7、创建default文件
mkdir /var/lib/tftpboot/pxelinux.cfg
cd /var/lib/tftpboot/pxelinux.cfg/
vim default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.111.254/centos7
内容解析:
default auto:指定默认引导菜单选项为"auto",即自动引导到"auto"标签定义的操作。
prompt 1:在引导菜单中显示提示符(例如"boot:"),1为等待用户输入。0为不等待。
label auto:定义了一个名为"auto"的引导标签,即引导菜单中的一个选项。
kernel vmlinuz:指定内核文件的名称为"vmlinuz",该文件是操作系统内核的可执行文件。
append initrd=initrd.img method=ftp://192.168.44.128/centos7:指定了内核启动参数的选项。其中initrd=initrd.img指定了初始化内存盘镜像的名称为"initrd.img",method=ftp://192.168.44.128/centos7则指定了远程FTP服务器上的CentOS 7操作系统镜像的路径,用于安装操作系统。
整体上,该配置文件定义了一个引导标签"auto",并指定了引导到该标签时所需的内核文件和启动参数。在实际使用中,PXE客户端将根据此配置文件进行引导,并根据所选的标签执行相应的操作,例如安装指定路径下的CentOS 7操作系统。
8、进行装机测试
1)新建虚拟机 2)不导入镜像,点击下一步
3)选择安装系统 4)给虚拟机命名,点击下一步
5)给予内存用量大小 6)完成新建
7)与DHCP那台机器处于同一网段 8)开启虚拟机即可,出现这个不用管,点是就行
9)出现这个界面点击回车 10)根据流程完成安装即可
这里已经可以看到,安装源位置
(二)Kickstart无人值守+PXE装机
1、什么是Kickstart?
Kickstart是一种自动化安装工具,用于在Linux系统上进行无人值守的操作系统安装和配置。它最初由Red Hat开发,并成为Red Hat Enterprise Linux(RHEL)和CentOS等Linux发行版的标准安装方式。
使用Kickstart,可以通过编辑一个Kickstart文件来定义安装过程中的各种配置选项,例如分区设置、软件包选择、网络设置、用户账号等。而不需要在每台计算机上手动进行交互式安装,从而节省了时间和人力资源。
Kickstart文件可以通过网络进行传输,或者从ISO镜像或USB设备中加载。在安装过程中,Kickstart文件将自动读取并应用其中的配置选项,从而实现完全自动化的安装过程。
2、Kickstart的优点
1)提高效率:通过自动化安装和配置过程,节省了大量的人力资源和时间成本。同时也避免了手动操作可能带来的错误。
2)统一配置:Kickstart提供了统一的配置方式,可以确保所有安装的系统具有相同的配置,避免了人为因素导致的配置差异。
3)灵活性:Kickstart文件可以根据实际需求进行定制,灵活地选择软件包、分区设置、网络配置等。同时,可以使用脚本和命令来自定义安装过程中的特定操作。
4)可扩展性:Kickstart支持通过网络传输配置文件,也可以将配置文件打包到ISO镜像或USB设备中。这使得在不同环境下使用Kickstart更加方便。
综上所述,Kickstart在大规模部署和自动化环境搭建方面具有重要的应用价值,并带来了高效、一致和可靠的系统安装和配置。
3、Kickstart的应用场景
Kickstart的应用场景包括但不限于以下几个方面:
1)批量服务器部署:Kickstart可以帮助快速部署大量服务器,特别是在需要统一配置的情况下。通过预先定义好Kickstart文件,可以在无人值守的情况下进行批量安装,大大提高了效率。
2)自动化测试环境搭建:在软件开发过程中,经常需要搭建多台测试环境,而且这些环境的配置可能相似或者完全相同。Kickstart可以简化测试环境的搭建过程,通过一次定义好Kickstart文件后,可以自动化地搭建多个相同配置的测试环境。
3)恢复和故障排除:在系统崩溃或需要重装的情况下,Kickstart可以帮助快速恢复系统。只需准备好Kickstart文件,重启系统并指定Kickstart文件的位置,即可自动化地重新安装和配置系统。
4、Kickstart+PXE实际应用案例
本次实验是基于上面装机的案例进行的
1)安装system-config-kickstart,使用图形界面配置
yum install -y system-config-kickstart
2)配置文件位置
vim /root/anaconda-ks.cfg
注:这里我们需用从配置文件中摘选一下内容进行后续操作( ks.cfg ),不对配置文件进行更改。
%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
%end
3)进入图形界面
system-config-kickstart
更改如下位置内容
注:在全部配置完毕后再次对内容进行检查,确保无遗漏。而后保存!!!
注:再没有进行保存前千万不要点击x,不然准备重新配置一遍内容吧!!!
存到/root/下就行,名称可以不用更改,保持默认即可
4)更改配置文件
在配置完毕后进行更改配置文件 ( /root/anaconda-ks.cfg )
vim /root/ks.cfg
在配置文件最下放插入上面拷贝出来的内容
%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
%end
cp /root/ks.cfg /var/ftp
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.111.254/centos7 ks=ftp://192.168.111.254/ks.cfg
5)进行装机检测
注: 等待自动安装完成后,自动重启即可,全程无需手动操作,除了手动点击开机
总结
PXE装机是一种通过网络进行远程安装操作系统的方法。它通过配置PXE服务器和正确设置引导顺序,实现了在没有安装介质的情况下远程安装操作系统的功能。PXE装机具有方便快捷、灵活性高和易于维护的优点,适用于需要批量安装操作系统的场景。通过了解和掌握PXE装机的原理和步骤,用户可以在多台计算机上轻松地进行批量安装操作系统的工作。