Linux网络-PXE高效批量装机

一、前言:

1.系统装机的三种引导方式:

1.硬盘

2.光驱(u盘)

3.网络启动 pxe

2.系统安装过程:

  • 加载boot loader

  • Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境

  • 加载启动安装菜单

  • 加载内核和initrd系统(文件才能使用文件)

  • 加载根系统()

  • 运行anaconda的安装向导

3.Linux安装光盘的安装相关文件:

在系统光盘的isolinux目录下有和安装相关的文件

  • boot.cat: 相当于grub的第一阶段

  • isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目

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

  • vesamenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单

  • memtest:内存检测程序

  • splash.png:光盘启动菜单界面的背景图

  • vmlinuz:是内核映像

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

二、PXE的概述:

PXE,即Pre-boot Execution Environment,即预引导执行环境,通过PXE,可以实现网络引导与安装操作系统。

PXE是由Inter 公司开发的网络引导技术,工作在Client / Server 模式。允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。

 pxe是通过网卡引导启动

PXE 优点:

规模化:同时装配多台服务器

自动化:安装系统,配置各种服务都可以交给机器进行

远程实现:不需要光盘,U盘等安装介质

PXE特点:

PXE严格来说并不是一种安装方式,而是一种引导方式。

协议分为 client 和 server 端

运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。

三、PXE实现:

1.进行PXE装机的前提条件:

  • 客户机:

客户机的网卡要支持PXE协议(集成BOOTROM芯片)

主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可

  • 服务端:

DHCP 服务器 :为客户机自动分配地址、指定引导文件位置。

服务器要开启 TFTP服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载。

服务器中使用FTP服务(或http/nfs)font> :提供yum安装源

安装软件包syslinux :提供PXE引导程序

2.实现过程讲解:

1.网卡需要查找相关的dhcp服务器(获取地址时间)

2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)

3.网卡使用tftp客户端吧引导程序加载到内存中来

4.bios执行引导程序

5.引导程序会去TFTP去查找配置文件

6.根据配置文件去引导安装系统

7.系统安装过程

3.搭建过程中服务详解:

PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能 够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。

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

是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。

3.2 vsftp:安装系统镜像文件获取方式

可以使用http ftp等方式,ftp文件传输的一种。

3.3 syslinux

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

pxelinux.0 启动pxe pxe可以支持

3.4 DHCP服务

DHCP是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,同时也能配合DNS解析使用,让指定范围内的客户机能够自动获取解析域名的后缀。

4.四大文件:

搭建过程所需要的四大文件:

  • pxelinux.0:引导程序。(来自syslinux程序)
  • pxelinux.cfg :存放default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
  • vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
  • initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)

5.PXE搭建过程:

1.安装所需的软件包:

yum install dhcp vsftpd tftp-server.x86_64 syslinux -y

2.配置文件模板在此目录下

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

3.配置dhcp文件:

vim /etc/dhcp/dhcpd.conf

并开启服务:

systemctl start dhcpd 

4.修改 tftp 服务配置文件 :

 vim /etc/xinetd.d/tftp

改成no 

5.挂载光盘,拷贝文件 

 

 6.新建文件夹,写配置文件:

mkdir pxelinux.cfg

vim pxelinux.cfg/default

default linux
timeout 600

label linux
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.62.66/centos7

 

 7.配置vsftpd服务,关闭防护和防火墙,开启服务

在/var/ftp/下新建一个目录,并将光盘挂载到该目录下,供客户端下载

 8.到这里已经实现了半自动化安装

再安装一个kickstart程序,实现全自动化安装

9.在虚拟机内的 Kickstart 进行配置

 

 

 

 

 

 

保存到ftp:

 

 11.写入配置中

12.新建虚拟机进入急救模式

 

加载完成

 可以登陆

四、kickstart 无人值守安装:

kickstart文件主要包括三个部分:命令段,程序包段,脚本段

命令段:指明各种安装前配置,如键盘类型等

命令段中的常见命令:

keyboard: 设定键盘类型

lang: 语言类型

zerombr:清除mbr

clearpart:清除分区

part: 创建分区

rootpw: 指明root的密码

timezone: 时区

text: 文本安装界面

network:指定网络设置

firewall:设置防火墙设置

selinux:设置selinux设置

reboot:安装完自动重启

user:安装完成后为系统创建新用户

url: 指明安装源

程序包段:指明要安装的程序包组或程序包,不安装的程序包等

%packages

@^environment group: 指定环境包组,如:@^minimal-environment

@group_name

package

-package

%end

脚本段:

%pre: 安装前脚本

%post: 安装后脚本

#  安装 kickstart 服务程序
yum install  system-config-kickstart  -y
 
#  查看kickstart 形成的脚本
cat /var/ftp/ks.cfg

五、Cobbler的工作原理:

1.Cobbler简介:

  1. Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。
  2. Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
  3. Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管
  4. Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。

2.cobbler集成的服务:

PXE服务支持。
DHCP服务管理。
DNS服务管理(可选bind,dnsmasq)
电源管理
Kickstart服务支持
YUM仓库管理
TFTP(PXE启动时需要)
Apache(提供kickstart的安装源,并提供定制化的kickstart配置)

3.cobbler工作原理:

  • client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP
  • DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址
  • client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求
  • cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
  • client裸机通过上面告知的TFTP server地址通信,下载引导文件
  • client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
  • cobbler server发送请求的kickstart和os iamge
  • client裸机加载kickstart文件
  • client裸机接收os image,安装该os image