九天猎人 发表于 2024-10-10 08:09:27

pxe批量安装系统

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

PXE(Preboot Execution Environment,预启动执行环境)是一种通过网络启动盘算机的技能。
它允许盘算机在没有本地存储装备(如硬盘)或本地操纵系统的环境下,从网络上的服务器获取启动映像和操纵系统安装文件来启动和运行。
PXE 的工作流程通常包罗以下几个重要步调:


[*]客户端盘算机开机时,其 BIOS 或 UEFI 设置会启用网络启动选项。
[*]客户端通过网络向 DHCP(Dynamic Host Configuration Protocol,动态主机设置协议)服务器请求 IP 地点和启动相关的设置信息。
[*]DHCP 服务器为客户端分配 IP 地点,并提供 PXE 服务器的位置以及启动文件的名称。
[*]客户端根据获取的信息,与指定的 PXE 服务器创建毗连,并请求下载启动映像文件。
[*]PXE 服务器相应请求,将启动映像文件发送给客户端。
[*]客户端加载启动映像,然后可以举行操纵系统的安装、诊断工具的运行或执行其他预定义的使命。
PXE 常用于以下场景:


[*]大规模的盘算机部署:比方企业环境中同时部署多台新盘算机。
[*]无盘工作站:节省硬件本钱,所有的数据和操纵系统都从网络服务器获取。
[*]系统规复和维护:可以快速规复受损的系统或举行远程系统维护。
在实际应用中,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

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服务
https://i-blog.csdnimg.cn/direct/51f7571581f3465d8b4ad408120775a2.jpeg
预备安装文件 

将内核和初始化镜像文件放入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/
https://i-blog.csdnimg.cn/direct/48d8cf165b1e474b8ee2a171abc0a201.jpeg
 
创建启动菜单设置文件
创建启动菜单配置文件
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   个人条记和实际有出入

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: pxe批量安装系统