pxe批量安装系统

什么是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  

  个人笔记和实际有出入

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值