pxe批量安装系统

avatar
作者
猴君
阅读量:0

什么是pxe、工作流程、常用场景

PXE(Preboot Execution Environment,预启动执行环境)是一种通过网络启动计算机的技术。

它允许计算机在没有本地存储设备(如硬盘)或本地操作系统的情况下,从网络上的服务器获取启动映像和操作系统安装文件来启动和运行。

PXE 的工作流程通常包括以下几个主要步骤:

  1. 客户端计算机开机时,其 BIOS 或 UEFI 设置会启用网络启动选项。
  2. 客户端通过网络向 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器请求 IP 地址和启动相关的配置信息。
  3. DHCP 服务器为客户端分配 IP 地址,并提供 PXE 服务器的位置以及启动文件的名称。
  4. 客户端根据获取的信息,与指定的 PXE 服务器建立连接,并请求下载启动映像文件。
  5. PXE 服务器响应请求,将启动映像文件发送给客户端。
  6. 客户端加载启动映像,然后可以进行操作系统的安装、诊断工具的运行或执行其他预定义的任务。

PXE 常用于以下场景:

  1. 大规模的计算机部署:例如企业环境中同时部署多台新计算机。
  2. 无盘工作站:节省硬件成本,所有的数据和操作系统都从网络服务器获取。
  3. 系统恢复和维护:可以快速恢复受损的系统或进行远程系统维护。

在实际应用中,PXE 的实现需要配置一系列的网络服务,如 DHCP 服务器、TFTP(Trivial File Transfer Protocol,简单文件传输协议)服务器、PXE 启动服务器等。

例如,在一个企业的 IT 部门中,当新采购了一批计算机需要统一安装特定的操作系统和软件时,就可以利用 PXE 技术,快速、高效地完成批量安装,而无需逐台计算机进行本地操作。

希望以上内容能帮助您对 PXE 有一个基本的了解!如果您有关于 PXE 更具体的问题或需要进一步的帮助,请随时告诉我。

PXE涉及的相关知识点

网络协议:
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议):用于为客户端分配 IP 地址、子网掩码、网关、DNS 服务器等网络配置信息,同时还向客户端提供 PXE 服务器的地址和启动文件名。
TFTP(Trivial File Transfer Protocol,简单文件传输协议):用于在客户端和服务器之间传输小型文件,如启动映像文件。
HTTP/HTTPS:在一些更复杂的 PXE 实现中,也可以使用 HTTP 或 HTTPS 协议来传输启动文件和操作系统安装文件。
启动映像:
包含了引导加载程序(如 PXELINUX、GRUB 等)和必要的初始化代码,用于引导客户端从网络获取操作系统安装文件或执行其他网络启动任务。
可以定制启动映像以满足特定的需求,例如加载特定的驱动程序、设置启动参数等。
操作系统安装:
通过网络将操作系统的安装文件传输到客户端,客户端可以从这些文件中进行系统安装。
支持多种操作系统,如 Windows、Linux 等。
可以使用自动化安装方法,如 Kickstart(用于 Linux)、Unattended Installation(用于 Windows)等,实现无人值守的操作系统安装。
服务器配置:
需要配置 PXE 服务器,包括设置 TFTP 根目录、放置启动映像文件和操作系统安装文件。
可能还需要配置 DNS 服务、NFS(Network File System,网络文件系统)或 SMB(Server Message Block,服务器消息块)共享等,以提供更完整的安装和部署环境。
BIOS/UEFI 设置:
客户端计算机的 BIOS 或 UEFI 中需要启用网络启动选项,并设置启动顺序,确保优先从网络启动。
安全考虑:
确保网络的安全性,防止未经授权的访问和恶意启动操作。
可以使用加密、认证等手段来保护 PXE 服务和传输的数据。
驱动支持:
启动映像中需要包含客户端硬件所需的基本驱动程序,以确保能够正常从网络启动和进行后续操作。
自动化部署工具:
结合 Ansible、Puppet、Chef 等自动化部署工具,可以进一步实现对 PXE 部署过程的自动化管理和配置。

例如,在一个大型企业的数据中心中,管理员使用 PXE 技术结合自动化安装工具,快速为新采购的服务器部署相同配置的操作系统和应用程序,大大提高了部署效率,减少了人工操作和错误。



Pxe批量部署流程

配置初始环境

1.1.关闭防火墙、selinux systemctl stop firewalld systemctl disable firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'  /etc/selinux/config  setenforce 0   1.2.配置本地yum mount  /dev/sr0  /mnt 配置yum文件 cd /etc/yum.repos.d vi   Centos.repo [development] name=CentOS7.6 baseurl=file:///mnt gpgcheck=0 enabled=1

安装服务

yum install dhcp    7版本为dhcp,8版本为dhcp-server  	 编辑dhcp配置文件,路径/etc/dhcp/dhcpd.conf, subnet 192.168.40.0 netmask 255.255.255.0 { range 192.168.40.10 192.168.40.200;   #dhcp地址池范围 option routers 192.168.40.2;          #网关(即为Pxe Server地址) default-lease-time 600;       			   #默认租约时间600s max-lease-time 7200;                    #最大租约时间7200s filename "pxelinux.0";                    #PXE引导文件 next-server 192.168.40.10;       #TFTP服务器地址(即为Pxe Server地址)

安装tftp、xinetd 、syslinux  、httpd

yum install tftp-server xinetd syslinux httpd

修改tftp-server配置文件/etc/xinetd.d/tftp,启用tftp服务

准备安装文件 

将内核和初始化镜像文件放入tftp根目录下,initrd.img为初始化镜像,vmlinuz为内核文件,两个文件需要从欲安装的OS镜像中获取;

cd /mnt/images/pxeboot/

cp initrd.img vmlinuz /var/lib/tftpboot/

复制pxe引导程序

rpm -ql syslinux | grep pxelinux 或者find / -name pxelinux.0

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

 

创建启动菜单配置文件

创建启动菜单配置文件  mkdir /var/lib/tftpboot/pxelinux.cfg cd /var/lib/tftpboot/pxelinux.cfg  vi default   default linux prompt=0 timeout 60   label linux   menu label ^Install CentOS 7.7   kernel vmlinuz   append initrd=initrd.img ks=http://192.168.40.10/ks_7.6/ks.cfg

准备ks文件

mkdir /var/www/html/ks_7.6

#platform=x86, AMD64, or Intel EM64T #version=DEVEL # System authorization information auth  --useshadow  --enablemd5 # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all --initlabel # Use text mode install text  # Firewall configuration firewall --enabled --port=22:tcp  # System keyboard keyboard us  # System language lang en_US  # SELinux configuration selinux --disabled  # Installation logging level logging --level=info  # Reboot after installation reboot  # Root password rootpw --iscrypted $1$asdfghjkl$g73wX4T6W8NnT27c9U07B0  # Network information network  --bootproto=dhcp --device=eth0  # System timezone timezone America/New_York  # Install OS instead of upgrade install  # X Window System configuration information xconfig  --startxonboot  # Disk partitioning information part /boot --fstype="ext4" --size=500 part pv.008002 --size=10000 volgroup vg_root pv.008002 logvol / --fstype="ext4" --name=lv_root --vgname=vg_root --size=8192 logvol swap --fstype="swap" --name=lv_swap --vgname=vg_root --size=2048  %packages @core emacs

**1. 平台和版本**:
    - 支持 x86、AMD64 和 Intel EM64T 架构。
    - 版本为开发版。

**2. 系统授权**:
    - 使用影子密码并启用 MD5 加密来增强密码安全性。

**3. 引导加载程序**:
    - 安装在主引导记录(MBR)。

**4. 分区清理**:
    - 清除所有分区并初始化分区标签。

**5. 安装模式**:
    - 选择文本模式安装。

**6. 防火墙**:
    - 启用防火墙并开放 22 端口的 TCP 连接。

**7. 系统键盘**:
    - 键盘布局设置为美国标准。

**8. 系统语言**:
    - 系统语言选择英语(美国)。

**9. SELinux**:
    - 禁用 SELinux。

**10. 安装日志级别**:
    - 日志级别设置为信息级别。

**11. 安装后操作**:
    - 安装完成后自动重启。

**12. 根密码**:
    - 设置了经过加密的根密码。

**13. 网络**:
    - 通过 DHCP 自动获取网络配置,网络设备为 eth0。

**14. 系统时区**:
    - 设置为美国纽约时区。

**15. 安装类型**:
    - 执行全新安装,而不是升级。

**16. X 窗口系统**:
    - 系统启动时自动启动 X 窗口系统。

**17. 磁盘分区**:
    - 为 /boot 分区分配 500MB 空间,使用 ext4 文件系统。
    - 创建 10GB 的物理卷 pv.008002。
    - 创建卷组 vg_root 并将 pv.008002 加入其中。
    - 在 vg_root 卷组中创建 / 根分区,分配 8GB 空间,使用 ext4 文件系统。
    - 在 vg_root 卷组中创建 2GB 的交换分区。

**18. 软件包**:
    - 选择核心包组和 emacs 软件包。

这个 Kickstart 文件涵盖了系统安装的基本配置,包括分区、网络、语言、安全设置、软件包选择等方面。您可以根据具体需求对其进行修改和完善。例如,如果需要安装特定的服务或软件包,可以在 `%packages` 部分添加。如果要更改分区大小或文件系统类型,也可以在相应的分区部分进行调整。

启动TFTP、xinetd、dhcp、httpd服务

systemctl start tftp systemctl enable tftp  systemctl start xinetd systemctl enable xinetd  systemctl start dhcpd   	务必确认已修改pxe server网卡地址 systemctl enable dhcpd  systemctl start httpd systemctl enable httpd  

  个人笔记和实际有出入

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!