一、PXE介绍
1.概念
PXE(Preboot Execution Environment)服务器,译为“预启动执行环境”服务器。它是一种网络启动技术,允许计算机通过网络连接到服务器并从服务器获取操作系统或其他软件,以实现远程启动和安装操作系统的过程。PXE网络装机是一种常见的自动化操作系统部署方式,特别适用于大规模计算机系统管理、服务器集群部署、虚拟化环境以及无人值守的安装场景。
2.工作原理
- 客户端: 客户端启动,向网络发送DHCP请求,寻找DHCP服务器。网卡要支持PXE协议。 通过TFTP(简单文件传输协议)下载引导文件,通常是一个小型的PXE引导程序。 客户端执行下载的引导文件,该引导文件进一步下载操作系统内核等。
- 服务端:
DHCP服务器响应:DHCP服务器响应DHCP请求,为客户端分配IP地址。
服务器要通过 TFTP服务(简单文件传输协议)来提供系统内核和引导镜像文件等。
3.优缺点
- 优点
集中管理: 通过PXE网络装机,管理员可以集中管理操作系统镜像、引导加载器和安装文件。这样可以确保所有部署的系统都使用相同的标准配置,减少了配置不一致性和混乱。
快速部署: 使用PXE网络装机,可以快速部署大量的计算机系统。无需为每台计算机手动插入安装介质,节省了大量时间。
减少硬件需求: 由于PXE网络装机使用网络进行安装,不需要物理介质(如光盘或USB驱动器),从而节省了硬件成本和资源。
- 缺点
带宽和性能要求:安装大量服务器时,需要足够的网络带宽和服务器性能来支持大量数据的传输和处理,否则可能会导致安装速度缓慢或失败。
配置复杂:PXE服务器的配置相对复杂,需要具备一定的网络知识和Linux/Windows系统管理经验。同时,还需要根据实际需求进行详细的配置和测试,以确保PXE的正常运行。
二、实验环境
① 两台rhel7用作pxe-server服务端和pxe-client客户端 ;
② 火墙及selinux关闭;
[root@server ~]# systemctl disable --now firewalld
[root@server ~]# vim /etc/sysconfig/selinux #rhel7中建议在配置文件中关闭selinux
③ 关闭dncp服务避免影响实验中服务端提供的dhcp服务;注意:如果你的网络配置用的dhcp服务,关闭dhcp服务就会影响你的网络,这里可以将/etc/sysconfig/network-scripts下的网卡配置内容改一下。具体的我在Linux网卡配置里面有讲。
三、kickstart自动安装脚本制作
1. 服务端安装启用kickstart
[root@server ~]# yum install system-config-kickstart -y #安装图形化生成kickstart自动安装脚本的工具
[root@server ~]# system-config-kickstart #启动图形化制作工具
添加前注意:
保存后直接关了图形界面就行 。
2. 检查脚本语法等
- anaconda-ks.cfg
是一个Kickstart配置文件,自动化安装系统。这个文件包含了在安装过程中通过图形用户界面(GUI)或文本用户界面(TUI)做出的所有选择和配置,比如分区方案、要安装的软件包、网络配置、系统时区等。
在安装系统过程中,如果用户选择“保存安装配置”,安装程序就会自动生成这个anaconda-ks.cfg文件。这个文件之后可以被用来自动执行相同或类似的安装过程,通过在一个新的安装过程中指定Kickstart文件作为输入来实现。
- initial-setup-ks.cfg
是另一个Kickstart风格的配置文件,但它主要用于系统的初始设置过程,而不是安装过程。这个文件可能包含了一些在安装后首次启动时配置系统的指令,比如设置时区、网络、创建用户等。它允许系统管理员在系统安装后自动化完成一些基本的配置步骤。
然而,需要注意的是,并非所有的Linux发行版都会生成或使用initial-setup-ks.cfg文件。这个文件的存在和用途可能取决于特定的发行版或发行版的版本。
3. 安装并开启httpd服务
[root@server ~]# yum install httpd -y
[root@server ~]# systemctl enable --now httpd
4. 脚本共享
允许用户在安装过程中通过HTTP协议自动下载ks.cfg
[root@pxe-server ~]# cp ks.cfg /var/www/html/
[root@pxe-server ~]# cd /var/www/html/
[root@pxe-server html]# ls
ks.cfg[root@pxe-server html]# vim ks.cfg
脚本里编写
%packages
@base
httpd
%end
如:
5. 测试脚本是否成功共享
6. 安装dhcp服务并修改配置文件
[root@pxe-server ~]# yum install dhcp -y
[root@pxe-server ~]# rpm -qc dhcp #列出与dhcp包有关的所有配置文件
[root@pxe-server ~]# cat /etc/dhcp/dhcpd.conf #查看配置文件示例的路径[root@pxe-server ~]# cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y #将示例文件复制到/etc/dhcp下
[root@pxe-server ~]# vim /etc/dhcp/dhcpd.conf #编辑配置文件
subnet 172.25.254.0 #网络位
netmask 255.255.255.0 #子网掩码
range 172.25.254.40 172.25.254.50 #地址池
option routers 172.25.254.2 #网关 (根据服务器机子设定!)
[root@pxe-server ~]# systemctl restart dhcpd #重启dncp服务
7. 编辑ks.cfg