pxe批量安装系统

打印 上一主题 下一主题

主题 873|帖子 873|积分 2619

什么是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.1.关闭防火墙、selinux
  2. systemctl stop firewalld
  3. systemctl disable firewalld
  4. sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'  /etc/selinux/config
  5. setenforce 0
  6. 1.2.配置本地yum
  7. mount  /dev/sr0  /mnt
  8. 配置yum文件
  9. cd /etc/yum.repos.d
  10. vi   Centos.repo
  11. [development]
  12. name=CentOS7.6
  13. baseurl=file:///mnt
  14. gpgcheck=0
  15. enabled=1
复制代码
安装服务

  1. yum install dhcp    7版本为dhcp,8版本为dhcp-server
  2.          编辑dhcp配置文件,路径/etc/dhcp/dhcpd.conf,
  3. subnet 192.168.40.0 netmask 255.255.255.0 {
  4. range 192.168.40.10 192.168.40.200;   #dhcp地址池范围
  5. option routers 192.168.40.2;          #网关(即为Pxe Server地址)
  6. default-lease-time 600;                                  #默认租约时间600s
  7. max-lease-time 7200;                    #最大租约时间7200s
  8. filename "pxelinux.0";                    #PXE引导文件
  9. 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/


 
创建启动菜单设置文件
  1. 创建启动菜单配置文件
  2. mkdir /var/lib/tftpboot/pxelinux.cfg
  3. cd /var/lib/tftpboot/pxelinux.cfg
  4. vi default
  5.  
  6. default linux
  7. prompt=0
  8. timeout 60
  9.  
  10. label linux
  11.   menu label ^Install CentOS 7.7
  12.   kernel vmlinuz
  13.   append initrd=initrd.img ks=http://192.168.40.10/ks_7.6/ks.cfg
复制代码
预备ks文件

mkdir /var/www/html/ks_7.6
  1. #platform=x86, AMD64, or Intel EM64T
  2. #version=DEVEL
  3. # System authorization information
  4. auth  --useshadow  --enablemd5
  5. # System bootloader configuration
  6. bootloader --location=mbr
  7. # Partition clearing information
  8. clearpart --all --initlabel
  9. # Use text mode install
  10. text
  11. # Firewall configuration
  12. firewall --enabled --port=22:tcp
  13. # System keyboard
  14. keyboard us
  15. # System language
  16. lang en_US
  17. # SELinux configuration
  18. selinux --disabled
  19. # Installation logging level
  20. logging --level=info
  21. # Reboot after installation
  22. reboot
  23. # Root password
  24. rootpw --iscrypted $1$asdfghjkl$g73wX4T6W8NnT27c9U07B0
  25. # Network information
  26. network  --bootproto=dhcp --device=eth0
  27. # System timezone
  28. timezone America/New_York
  29. # Install OS instead of upgrade
  30. install
  31. # X Window System configuration information
  32. xconfig  --startxonboot
  33. # Disk partitioning information
  34. part /boot --fstype="ext4" --size=500
  35. part pv.008002 --size=10000
  36. volgroup vg_root pv.008002
  37. logvol / --fstype="ext4" --name=lv_root --vgname=vg_root --size=8192
  38. logvol swap --fstype="swap" --name=lv_swap --vgname=vg_root --size=2048
  39. %packages
  40. @core
  41. 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服务

  1. systemctl start tftp
  2. systemctl enable tftp
  3. systemctl start xinetd
  4. systemctl enable xinetd
  5. systemctl start dhcpd           务必确认已修改pxe server网卡地址
  6. systemctl enable dhcpd
  7. systemctl start httpd
  8. systemctl enable httpd  
复制代码
  个人条记和实际有出入

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表