点击返回架构师成长之路html
架构师成长之路2.1-PXE+Kickstart原理
PXE+Kickstart 主要用于在公司内网批量安装新服务器系统,这极大地简化了用光盘重复安装Linux操做系统的过程,再加上分布式自动化运维工具puppet进行批量部署,达到了自动化运维的目的,避免了重复性劳动,极大的提升了工做效率。linux
虽然网络上面有不少介绍, 可是为了自学仍是整理一番。服务器
1. PXE
严格来讲,PXE 并非一种安装方式,而是一种引导方式。网络
PXE 安装的两个必要条件:架构
① 要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必需要有 PXE Client。
PXE (Pre-boot Execution Environment)协议可使计算机经过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,而后由 PXE Client 将放置在远端的文件经过网络下载到本地运行。运维
② PXE服务器必需要提供至少含有DHCP以及TFTP的服务。分布式
- DHCP服务必需要可以提供客户端的网络参数,还要告知客户端TFTP所在的位置;
- TFTP则提供客户端的boot loader及kernel file下载路径。
还要加上NFS/FTP/HTTP(选择同样便可)等提供安装文件(安装镜像的解压文件),才算是比较完整的PXE服务器。通常TFTP和DHCP服务都由同一台服务器提供,且大多数时候还提供NFS/FTP/HTTP服务,因此PXE服务器通常是提供3合一的服务工具
2. PXE的工做过程
图片来源于网络。
spa
- (1)Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),若是合法则返回Client的IP地址,同时将pxe环境下的Boot loader文件pxelinux.0的位置信息传送给Client。
- (2)Client向PXE Server上的TFTP请求pxelinux.0,TFTP接收到消息以后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的赞成大小信息以后,正式向Client发送pxelinux.0。
- (3)Client执行接收到的pxelinux.0文件。
- (4)Client向TFTP请求pxelinux.cfg文件(其实它是目录,里面放置的是是启动菜单,即grub的配置文件),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操做。
- (5)Client向TFTP发送Linux内核请求信息,TFTP接收到消息以后将内核文件发送给Client。
- (6)Client向TFTP发送根文件请求信息,TFTP接收到消息以后返回Linux根文件系统。
- (7)Client加载Linux内核(启动参数已经在4中的配置文件中设置好了)。
- (8)Client经过nfs/ftp/http下载系统安装文件进行安装。若是在(4)中的配置文件指定了kickstart路径,则会根据此文件自动应答安装系统
2. Kickstart
Kickstart是一种无人值守的安装方式。操作系统
工做原理:
在安装过程当中记录典型的须要人工干预填写的各类参数,并生成一个名为 ks.cfg的文件。
若是在安装过程当中(不仅局限于生成Kickstart安装文件的机器)出现要填写参数的状况,安装程序首先会去查找 Kickstart生成的文件
- 若是找到合适的参数,就采用所找到的参数;
- 若是没有找到合适的参数,便须要安装者手工干预了。
因此,若是Kickstart文件涵盖了安装过程当中可能出现的全部须要填写的参数,那么安装者彻底能够只告诉安装程序从何处取ks.cfg文件,而后就去忙本身的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。

建立Kickstart文件有三种方式:
- 彻底手动建立Kickstart。
- 使用图形化工具system-config-kickstart建立Kickstart。
- 经过标准化安装程序Anaconda安装系统,Anaconda会生成一个当前系统的Kickstart文件,以此来建立Kickstart文件。
.........