当前位置:   article > 正文

PXE实现自动批量安装部署操作系统_pxe安装系统

pxe安装系统

目录

一、PXE介绍

二、PXE涉及的相关知识点

三、搭建PXE网络体系的前提

四、服务端要安装一系列的依赖环境

五、搭建 PXE 远程安装服务器

5.1、安装并启动TFTP服务

5.2、安装并启用 DHCP 服务

5.3、准备 Linux 内核、初始化镜像文件、准备 PXE 引导程序

5.4、安装FTP服务,准备CentOS 7 安装源

5.5、配置启动菜单文件

验证

六、实现 Kickstart 无人值守安装


一、PXE介绍

PXE(Preboot eXecution Environment)是一种在计算机启动时使用网络接口从远程服务器获取操作系统安装和启动信息的技术。通过PXE,计算机可以从局域网中的PXE服务器上下载操作系统安装文件,并进行自动化的操作系统部署或故障排除。由Intel公司开发的PXE网络引导技术工作在Client/Server模式,可以同时装配多台机器,安装系统、配置各种服务,同时不需要光盘、U 盘等安装介质实现远程连接。

二、PXE涉及的相关知识点

PXE协议:PXE是一种预启动执行环境,提供了一种从网络上启动计算机并在网络环境中安装操作系统的方法。PXE协议包括了BOOTP(Bootstrap Protocol)和TFTP(Trivial File Transfer Protocol),同时也支持DHCP、HTTP等其他协议。

PXE引导文件:PXE引导文件包括了各种操作系统的引导文件,如Linux内核、Windows PE等,它们通常存储在PXE服务器上的TFTP目录中。当客户端通过PXE启动时,它会从PXE服务器上下载相应的引导文件。

DHCP服务:DHCP服务是为客户端分配IP地址、子网掩码、网关等网络参数的协议。在PXE自动装机过程中,DHCP服务器会向客户端提供PXE服务器的IP地址和PXE引导文件的位置信息。

TFTP服务:TFTP服务是一个简单的文件传输协议,用于将引导文件和操作系统映像从PXE服务器传输到客户端计算机上。

操作系统映像:操作系统映像是安装操作系统所需的文件,通常包括了操作系统核心文件、驱动程序、软件包等。在PXE自动装机中,这些映像文件存储在PXE服务器上,并通过TFTP服务传输到客户端计算机上进行安装。

三、搭建PXE网络体系的前提

1、合适的设备:需要拥有一台作为PXE服务器的计算机,该计算机需要具备足够的处理能力和存储空间来运行PXE服务和存储操作系统映像。此外,还需要一台或多台客户端计算机,这些计算机将通过PXE引导从服务器上下载并安装操作系统。

2、网络基础设施:你需要拥有一个稳定可靠的局域网环境,以便PXE服务器和客户端计算机之间进行通信。确保网络连接正常、IP地址分配正确,并且网络设备(如交换机、路由器)能够正常工作。客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。

3、PXE服务器软件:你需要选择并安装适当的PXE服务器软件。常用的PXE服务器软件包括ISC DHCP、TFTPD32、tftp-server、Serva等,它们提供了DHCP、TFTP等服务,方便配置和管理PXE引导文件、操作系统映像等。

四、服务端要安装一系列的依赖环境

TFTP:简单文件传输协议。基于UDP实现,用于客户端和服务端之间进行小文件的传输

xinetd:网络守护进程服务器,管理TFTP

DHCP:分配IP地址,提供引导文件的文件

TFP:传输镜像等等大文件

kickstart:无人值守程序

五、搭建 PXE 远程安装服务器

服务器中包含 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。

服务器IP地址:172.16.80.12

5.1、安装并启动TFTP服务

  1. //关闭防火墙,临时禁用SELinux安全机制
  2. [root@12 ~]# systemctl stop firewalld
  3. [root@12 ~]# setenforce 0
  4. //安装 TFTP 服务
  5. [root@12 ~]# yum -y install tftp-server xinetd
  6. //修改TFTP服务的配置文件
  7. //将第十行 wait 的值改为 yes (表示可以连接多台主机)
  8. //将第十四行的 disable 的值改为 no (表示开启TFTP服务)
  9. [root@12 ~]# vim /etc/xinetd.d/tftp
  10. # default: off
  11. # description: The tftp server serves files using the trivial file transfer \
  12. # protocol. The tftp protocol is often used to boot diskless \
  13. # workstations, download configuration files to network-aware printers, \
  14. # and to start the installation process for some operating systems.
  15. service tftp
  16. {
  17. socket_type = dgram
  18. protocol = udp
  19. wait = no
  20. user = root
  21. server = /usr/sbin/in.tftpd
  22. server_args = -s /var/lib/tftpboot
  23. disable = no
  24. per_source = 11
  25. cps = 100 2
  26. flags = IPv4
  27. }
  28. //重启tftp和xinetd服务,并设置开机自启
  29. [root@12 ~]# systemctl restart tftp
  30. [root@12 ~]# systemctl enable tftp
  31. [root@12 ~]# systemctl restart xinetd
  32. [root@12 ~]# systemctl enable xinetd

5.2、安装并启用 DHCP 服务

  1. //安装dhcp软件包
  2. [root@12 ~]# yum -y install dhcp
  3. //将dhcp配置模板复制到dhcp配置文件中
  4. [root@12 ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
  5. cp: overwrite ‘/etc/dhcp/dhcpd.conf’? yes
  6. //修改DHCP服务的配置文件
  7. [root@12 ~]# vim /etc/dhcp/dhcpd.conf
  8. //11行的max-lease-time 7200; 下添加
  9. //ddns-update-style none;
  10. //next-server 172.16.80.12;
  11. //filename "pxelinux.0";
  12. //如下所示
  13. default-lease-time 600;
  14. max-lease-time 7200;
  15. ddns-update-style none;
  16. next-server 172.16.80.12;
  17. filename "pxelinux.0";
  18. //修改第3538行的subnet模块
  19. //如下所示
  20. subnet 172.16.80.0 netmask 255.255.255.0 {
  21. range 172.16.80.50 172.16.80.60;
  22. option routers 172.16.80.12;
  23. }
  24. //:wq 保存退出
  25. //重启dhcpd服务,并设置为开机自启
  26. [root@12 ~]# systemctl restart dhcpd
  27. [root@12 ~]# systemctl enable dhcpd

对配置文件里修改/添加的内容解释

ddns-update-style none;        ->        禁用 DNS 动态更新

next-server 172.16.80.12;        ->        指定 TFTP 服务器的地址

filename "pxelinux.0";        ->        指定要下载的 PXE 引导程序的文件
 

subnet 172.16.80.0 netmask 255.255.255.0 {        #声明要分配的网段地址
  range 172.16.80.50 172.16.80.60;        #设置地址池
  option routers 172.16.80.12;        #默认网关地址指向TFTP服务器的IP地址
}

5.3、准备 Linux 内核、初始化镜像文件、准备 PXE 引导程序

  1. [root@12 ~]# mount /dev/sr0 /mnt
  2. mount: /dev/sr0 is write-protected, mounting read-only
  3. [root@12 ~]# cd /mnt/images/pxeboot
  4. //复制 Linux系统的内核文件 到TFTP根目录下
  5. [root@12 pxeboot]# cp vmlinuz /var/lib/tftpboot/
  6. //复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下
  7. [root@12 pxeboot]# cp initrd.img /var/lib/tftpboot/
  8. [root@12 pxeboot]# yum -y install syslinux
  9. //复制 PXE引导程序 到TFTP根目录下
  10. [root@12 pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

如果报如下错误:

[root@12 ~]# mount /dev/sr0 /mnt
mount: no medium found on /dev/sr0


5.4、安装FTP服务,准备CentOS 7 安装源

  1. //安装vsftpd服务
  2. [root@12 pxeboot]# yum -y install vsftpd
  3. //在ftp根目录下创建目录centos7
  4. [root@12 pxeboot]# mkdir /var/ftp/centos7
  5. //将镜像文件强制复制到centos7目录中,可加&让它自己后台运行
  6. [root@12 pxeboot]# cp -rf /mnt/* /var/ftp/centos7/
  7. //重启vsftpd服务,设置开机自启
  8. [root@12 pxeboot]# systemctl restart vsftpd
  9. [root@12 pxeboot]# systemctl enable vsftpd

5.5、配置启动菜单文件

默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default。

  1. [root@12 pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
  2. //创建default文件
  3. [root@12 pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
  4. //添加内容如下
  5. default auto
  6. #指定启动菜单的默认入口
  7. prompt 0
  8. #不等待用户控制,自行向下选择
  9. label auto
  10. #图像化界面的引导入口,label 用来定义启动项
  11. kernel vmlinuz
  12. #加载内核文件,kernel 和 append用来定义引导参数
  13. append initrd=initrd.img method=ftp://172.16.80.12/centos7
  14. label linux text
  15. #文本安装引导入口
  16. kernel vmlinuz
  17. append text initrd=initrd.img method=ftp://172.16.80.12/centos7
  18. label linux rescue
  19. #救援模式引导入口
  20. kernel vmlinuz
  21. append rescue initrd=initrd.img method=ftp://172.16.80.12/centos7
  22. //:wq保存退出

验证

自定义新建一个虚拟机,简单测试验证一下 :

 

 开启刚才新建的虚拟机

会有如下提示,点否即可

 

 

服务器配置成功

六、实现 Kickstart 无人值守安装

在上述实验中,已经可以做到开机就能自动获取镜像,安装镜像,配置基础网路配置。但是后半部分依旧需要手动安装。所以要实现全自动化,就要引入Kickstart程序服务,实现真正完全全自动化安装。

  1. //安装软件包
  2. [root@12 pxeboot]# yum install -y system-config-kickstart

MobaXterm远程连接软件可以用命令调出 Kickstart 配置程序界面,命令为:system-config-kickstart

  1. //打开 Kickstart 配置程序界面
  2. [root@12 pxeboot]# system-config-kickstart

基本配置 

 安装方法

引导装载程序选项

 

 分区信息

.

点击ADD添加布局

添加 /boot

 添加 交换分区

添加 / 

网络配置

 

防火墙配置

 

安装后脚本

 

保存文件

 

  1. //保存后配置文件在~目录
  2. [root@12 pxeboot]# cd ~
  3. [root@12 ~]# ls
  4. anaconda-ks.cfg Documents ks.cfg original-ks.cfg Public Videos
  5. Desktop Downloads Music Pictures Templates
  6. //编辑 ks.cfg ,加入要下载的包
  7. [root@12 ~]# vim ks.cfg
  8. #在原有的基础上添加以下内容
  9. %packages
  10. @base
  11. @core
  12. @desktop-debugging
  13. @dial-up
  14. @directory-client
  15. @fonts
  16. @gnome-desktop
  17. @guest-desktop-agents
  18. @input-methods
  19. @internet-browser
  20. @java-platform
  21. @multimedia
  22. @network-file-system-client
  23. @print-client
  24. @x11
  25. binutils
  26. chrony
  27. ftp
  28. gcc
  29. kernel-devel
  30. kexec-tools
  31. make
  32. open-vm-tools
  33. patch
  34. python
  35. %end
  36. [root@12 ~]# cp ks.cfg /var/ftp/ks.cfg
  37. [root@12 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
  38. #改为以下内容
  39. default auto
  40. prompt 0
  41. label auto
  42. kernel vmlinuz
  43. append initrd=initrd.img method=ftp://172.16.80.12/centos7 ks=ftp://172.16.80.12/ks.cfg
  44. label linux text
  45. kernel vmlinuz
  46. append text initrd=initrd.img method=ftp://172.16.80.12/centos7
  47. label linux rescue
  48. kernel vmlinuz
  49. append rescue initrd=initrd.img method=ftp://172.16.80.12/centos7

 重置刚刚建的虚拟机,虚拟机会自动安装

自动装机,实验成功

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/986463
推荐阅读
相关标签
  

闽ICP备14008679号