Linux网络服务之PXE自动装机

1. PXE高效批量网络装机

1.1 PXE概述

  • pxe(preboot execute environment):可以批量安装系统

  • pe:小型的操作系统,在有操作系统的情况下才能再装

pxe是通过网卡引导启动,网卡自带IP地址和tftp

1.2 实现的硬件条件

  • BIOS支持
  • 网卡支持PXE
  • 需要在bios中开启开关,服务器一般没打开(bmc界面里打开)
  • 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置,网卡自带DHCP功能,dhcp指明分配的IP地址
  • 服务器通过tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载

1.3 PXE批量部署的优点

  • 规模化:同时装配多台服务器
  • 自动化:安装系统、配置各种服务
  • 远程实现:不需要光盘、U盘等安装介质

1.4 启动操作系统三种方式

  • 硬盘
  • 光驱(u盘)
  • 网络启动 (pxe)

四大文件

  • pxelinux.cfg

  • isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件

  • vmlinuz:是内核映像

  • initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等)

1.5 实现PXE启动过程

  • 网卡需要查找相关的dhcp服务器(获取地址时间)
  • 找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
  • 网卡使用tftp客户端吧引导程序加载到内存中来
  • bios执行引导程序
  • 引导程序会去TFTP去查找配置文件
  • 根据配置文件去引导安装系统
  • 系统安装过程

1.6 搭建过程中服务详解

  • TFTP服务

TFTP(简单文件传输协议):内核和引导文件

基于UDP实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合,使用UDP69端口

  • vsftp服务

可以使用http、ftp等方式共享文件安装

  • syslinux

syslinux是一个功能强大的引导加载程序,兼容各种介质

  • DHCP

2. kickstart 无人值守安装

  • kickstart无人值守技术
    • 创建应答文件,预先定义好

kickstart文件主要包括三个部分:

  • 命令段:指明各种安装前配置,如键盘类型等
  • 程序包段:指明要安装的程序包组或程序包,不安装的程序包等
  • 脚本段:
    • %pre: 安装前脚本
    • %post: 安装后脚本
[root@localhost pxelinux.cfg]#yum install system-config-kickstart -y
#安装图形化工具

3. 实际操作

3.1 实现PXE

[root@localhost ~]#yum install dhcp -y
#下载dhcp安装包


[root@localhost ~]#systemctl stop firewalld.service  #关闭防火墙
[root@localhost ~]#setenforce 0   #关闭selinux

[root@localhost ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf  #复制主配置文件模板
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y  #选择yes
[root@localhost ~]#cd /etc/dhcp/  #切换dhcp目录
[root@localhost dhcp]#ls  #查看文件

[root@localhost dhcp]#vim dhcpd.conf  #进入配置文件


[root@localhost dhcp]#systemctl start dhcpd  #重启

[root@localhost dhcp]#yum install tftp-server.x86_64 -y  #下载tftp安装包


[root@localhost dhcp]#rpm -ql tftp-server   #查询软件包文件列表

[root@localhost dhcp]#vim /etc/xinetd.d/tftp  #进入tftp配置文件


[root@localhost dhcp]#systemctl start tftp     #启动tftp
[root@localhost dhcp]#cd /var/lib/tftpboot     #切换tftp根目录
[root@localhost tftpboot]#ls                   #查看文件
[root@localhost tftpboot]#pwd                  #查看路径

[root@localhost tftpboot]#mount /dev/sr0 /mnt   #将光驱挂载到mnt目录

[root@localhost tftpboot]#ls /mnt      #查看mnt目录
[root@localhost tftpboot]#cd /mnt      #切换到mnt目录
[root@localhost mnt]#cd isolinux/      #切换到isolinux目录
[root@localhost isolinux]#ls           #查看文件

[root@localhost isolinux]#cd /var/lib/tftpboot   #切换tftp根目录

[root@localhost tftpboot]#cp /mnt/isolinux/vmlinuz /var/lib/tftpboot
#复制vmlinuz到tftpboot

[root@localhost tftpboot]#cp /mnt/isolinux/initrd.img /var/lib/tftpboot
#复制initrd.img到tftpboot

[root@localhost tftpboot]#ls  #查看

[root@localhost tftpboot]#yum install syslinux -y   #下载syslinux安装包


[root@localhost tftpboot]#rpm -ql syslinux | grep pxelinux
#查询软件包文件列表过滤pxelinux

[root@localhost tftpboot]#cp /usr/share/syslinux/pxelinux.0 .  
#将pxelinux.0复制到当前文件夹
[root@localhost tftpboot]#ls  #查看文件

[root@localhost tftpboot]#yum install vsftpd -y   #下载vsftpd安装包


[root@localhost tftpboot]#cd /var/ftp   #切换ftp目录
[root@localhost ftp]#ls  #查看

[root@localhost ftp]#mkdir centos7   #新建centos7文件
[root@localhost ftp]#ls  #查看

[root@localhost ftp]#mount /dev/sr0 centos7/   #将光驱挂载到centos7文件
[root@localhost ftp]#ls  #查看
[root@localhost ftp]#ls centos7/  #查看centos7里的文件

[root@localhost ftp]#cd -  #切换到上一级目录
[root@localhost tftpboot]#mkdir pxelinux.cfg   #新建文件
[root@localhost tftpboot]#ls  #查看

[root@localhost tftpboot]#cd pxelinux.cfg   #切换目录
[root@localhost pxelinux.cfg]#ls   #查看文件

[root@localhost pxelinux.cfg]#vim default  #新建default文件


[root@localhost pxelinux.cfg]#systemctl start vsftpd   #重新启动vsftpd服务

3.2 自动化装机(pxe+kickstart)

[root@localhost pxelinux.cfg]#yum install system-config-kickstart -y
#下载kickstart图形化界面的包


基本配置


安装方法

引导文件

分区








防火墙配置

取消图形化安装

配置网卡






最小化安装成功
用户名:root
密码:123123
[root@localhost ~]#id lj
#显示用户

posted @   Candy独角兽  阅读(341)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示