【Linux网络】从原理到实操,感受PXE无人值守自动化高效批量网络安装系统

一、PXE网络批量装机的介绍

1、常见的三种系统安装方式

2、回顾系统安装的过程,了解系统安装的必要条件

3、什么是pxe

4、搭建pxe的原理

5、Linux的光盘镜像中的isolinux中的相关文件学习

二、关于实现PXE无人值守装机的四大文件与五个软件的对应关系详解

5个程序的使用原因:

1、DHCP服务器:

2、TFTP服务器:

3、syslinux程序:

4、FTP服务器:

5、kickstart程序:

三、实操PXE批量安装详解

做任何动作之前先关闭selinux和防火墙,以及安装五个软件

第一步:dhcp服务器搭建

第二步:准备好vsftpd服务,挂载光盘镜像

第三步:开启tftp开机自启,配置好tftp传输的文件,内核和驱动

第四步:找到grub小程序------也就是syslinux提供的pxelinux.0程序

第五步:手写grub.cfg配置文件------default文件

第六步:生成ks.cfg配置文件

第七步:启动所有服务,见证奇迹

第八步:实现自动化装机过程

四、总结


一、PXE网络批量装机的介绍

1、常见的三种系统安装方式

**第一种:u启动安装,**在优盘中下载相关的安装系统和镜像文件,优盘插入即可安装,将想要的操作系统安装进自己的硬盘(需要将优盘设置u启动或者把镜像烧录进去)

**第二种:光驱安装,**将相关的安装系统镜像放入光盘,插入电脑服务器中,即可按照引导进行装机,将操作系统安装进自己的硬盘

**第三种:网卡安装,**需要通过网络下载,在网上的某个服务器上去下载相关镜像系统,来进行安装

2、回顾系统安装的过程,了解系统安装的必要条件

**这是硬盘启动的过程:**开机自检(bios主板)------mbr引导(主要是去找grub菜单)------找到grub配置文件(找到内核的位置)------加载内核到内存------初始化启动

光驱安装系统的过程: bios引导选择光驱------boot.cat引导(通过isolinux.bin程序找到配置文件)------读取isolinux.cfg配置文件知道内核和光驱的位置------加载光驱里面的内核vmlinuz和驱动initrd.img到内存------再通过光驱里面找到各种初始化程序安装包,启动进程并开机

那么我们想要裸机通过网络来能够完成这样的过程,那么得有哪些必要条件呢?

①裸机主板需要支持网络引导(现在大多数的服务器主机都支持,需要在bios设置中可以允许network或者lan启动)

②需要有一个引导程序能找到grub配置文件(类似mbr引导)

③需要有一个类似grub配置文件指引找到内核(类似于grub.cfg)

④需要有vmlinuz内核程序和initrd.img驱动,加载到内存中(类似于vmlinuz-3.10.0-693.el7.x86_64和initramfs-3.10.0-693.el7.x86_64.img)

3、什么是pxe

PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。

pxe是通过网卡引导启动需要的条件:

1.BIOS支持

2.网卡支持(现在基本都已支持)

3.需要在bios中开启开关,服务器一般没打开(bmc界面里打开)

4.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置,网卡自带DHCP功能,dhcp 指明分配的ip地址

4、搭建pxe的原理

|-----|----------------------------------------------------------------------------------------------------------|
| 第一步 | 网卡需要查找相关的dhcp服务器,来获取ip地址和时间; |
| 第二步 | dhcp服务器,通过offer报文传给裸机客户端,不仅提供了ip地址,还提供了引导程序(boot loader,这里是pxelinux.0)的地址,以及tftp-server的地址(指向dhcp服务器自己); |
| 第三步 | 客户机通过tftp服务器获取引导程序pxelinux.0,将其加载到内存中; |
| 第四步 | 引导程序pxelinux.0通过tftp服务器获取pxelinux.cfg中的default配置文件; |
| 第五步 | 配置文件指明内核和驱动的位置,通过tftp服务器获取vmlinuz和initrd.img; |
| 最后 | 启动内核; |

5、Linux的光盘镜像中的isolinux中的相关文件学习

|--------------|---------------------------------------------------------------------------|
| boot.cat | 相当于grub的第一阶段 |
| isolinux.bin | 光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目 |
| isolinux.cfg | 启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件(相当于boot里面的grub.cfg) |
| vesamenu.c32 | 是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单(指明背景图位置) |
| memtest | 内存检测程序 |
| splash.png | 光盘启动菜单界面的背景图(这是一张图片) |
| vmlinuz | 是内核映像 |
| initrd.img | ramfs文件(精简版的linux系统,文件系统驱动等) |

二、关于实现PXE无人值守装机的四大文件与五个软件的对应关系详解

TFTP服务器的家目录/var/lib/tftpboot的四大文件一定是这样,标点符号都要一模一样:

​​​​​​

5个程序的使用原因:

1、DHCP服务器:

在这里DHCP服务器是用来动态分配客户端ip地址以及指明TFTP服务器的ip地址和引导程序"pxelinux.0"的位置

DHCP服务端是udp的67端口,客户端是udp的68端口

2、TFTP服务器:

这是网卡自带的功能,基于udp协议实现客户机和服务端之间进行简单的文件传输协议,适用于小型文件传输。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。

这里的TFTP服务器是用来提供传输四大文件,一共52M

3、syslinux程序:

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。

这里的syslinux提供pxelinux.0程序

4、FTP服务器(使用HTTP也是一样的功能):

TFTP用来传输小文件,这里的FTP用来传输大文件,提供镜像和安装包,以及存放传输ks.cfg文件,能够让系统自动化安装完以后重启并开机直接使用

5、kickstart程序:

通过图形化配置记录想要安装的方式,生成ks.cfg配置文件,放入在FTP服务器中(/var/ftp)

三、实操PXE批量安装详解

做任何动作之前先关闭selinux和防火墙,以及安装五个软件

第一步:dhcp服务器搭建

复制代码
 40 subnet 192.168.20.0 netmask 255.255.255.0 {
 41   range 192.168.20.80 192.168.20.100;
 42   option routers 192.168.20.2;
 43  next-server 192.168.20.18;
 44  filename "pxelinux.0";
 45 }

第二步:准备好vsftpd服务,挂载光盘镜像

复制代码
[root@localhost isolinux]#cd /var/ftp/
[root@localhost ftp]#ls
ks.cfg  pub
[root@localhost ftp]#mkdir centos7
[root@localhost ftp]#mount /dev/sr0 centos7/

第三步:开启tftp开机自启,配置好tftp传输的文件,内核和驱动

复制代码
[root@localhost boot]#rpm -qc tftp-server 
/etc/xinetd.d/tftp
[root@localhost boot]#vim /etc/xinetd.d/tftp
 14         disable                 = no  ##改为no,改为不关闭
复制代码
[root@localhost isolinux]#ll -h
总用量 53M
-r--r--r-- 1 root root 2.0K 9月   6 2017 boot.cat
-rw-r--r-- 1 root root   84 9月   5 2017 boot.msg
-rw-r--r-- 1 root root  281 9月   5 2017 grub.conf
-rw-r--r-- 1 root root  47M 9月   5 2017 initrd.img
-rw-r--r-- 1 root root  24K 9月   5 2017 isolinux.bin
-rw-r--r-- 1 root root 3.0K 9月   5 2017 isolinux.cfg
-rw-r--r-- 1 root root 187K 11月  6 2016 memtest
-rw-r--r-- 1 root root  186 10月  1 2015 splash.png
-r--r--r-- 1 root root 2.2K 9月   6 2017 TRANS.TBL
-rw-r--r-- 1 root root 150K 11月  6 2016 vesamenu.c32
-rwxr-xr-x 1 root root 5.7M 8月  23 2017 vmlinuz
[root@localhost isolinux]#cp initrd.img vmlinuz /var/lib/tftpboot/

第四步:找到grub小程序------也就是syslinux提供的pxelinux.0程序

第五步:手写grub.cfg配置文件------default文件

第六步:生成ks.cfg配置文件

第七步:启动所有服务,见证奇迹

复制代码
[root@localhost centos7]#systemctl restart dhcpd
[root@localhost ftp]#systemctl restart tftp
[root@localhost ftp]#systemctl restart vsftpd

第八步:实现自动化装机过程

四、总结

这一章有很多关于硬件的知识点,如果不理解就先放弃,明白pxe和kickstart的原理即可。

还有个优化方向:可以直接将DNS也一起放在DHCP的服务器上,让其自动获取

相关推荐
物联网软硬件开发-轨物科技1 小时前
【轨物方案】软硬件一体赋能,开启矿山机械远程智慧运维新篇章
运维
月熊1 小时前
在root无法通过登录界面进去时,通过原本的普通用户qiujian如何把它修改为自己指定的用户名
linux·运维·服务器
大江东去浪淘尽千古风流人物2 小时前
【DSP】向量化操作的误差来源分析及其经典解决方案
linux·运维·人工智能·算法·vr·dsp开发·mr
打码人的日常分享2 小时前
智慧城市一网统管建设方案,新型城市整体建设方案(PPT)
大数据·运维·服务器·人工智能·信息可视化·智慧城市
赖small强3 小时前
【Linux驱动开发】NOR Flash 技术原理与 Linux 系统应用全解析
linux·驱动开发·nor flash·芯片内执行
风掣长空3 小时前
Google Test (gtest) 新手完全指南:从入门到精通
运维·服务器·网络
luback4 小时前
前端对Docker简单了解
运维·docker·容器
0思必得04 小时前
[Web自动化] 开发者工具应用(Application)面板
运维·前端·python·自动化·web自动化·开发者工具
IT运维爱好者4 小时前
【Linux】LVM理论介绍、实战操作
linux·磁盘扩容·lvm
LEEE@FPGA4 小时前
ZYNQ MPSOC linux hello world
linux·运维·服务器