PXE高效批量装机
引言:本节将学习基于 PXE(Preboot eXecution Environment,预启动执行环境)技术的网络装机方法,并结合 Kickstart 配置实现无人值守自动安装。PXE 是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
一、PXE原理和概念
1、PXE概述
PXE 严格来说并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。
2、搭建PXE网络体系所需条件
- 客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器都支持,只需要在BIOS设置中允许从Network或LAN启动即可。
- 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
- 服务器要通过TFTP服务(简单文件传输协议)来提供引导镜像文件的下载。其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数 PC 都能够提供此支持,只需在 BIOS 设置中允许从 Network 或 LAN 启动即可。
3、PXE批量部署的优点
- 规模化:同时装配多台服务器。
- 自动化:安装系统、配置各种服务。
- 远程实现:不需要光盘、U 盘等安装介质。
二、KickStart的工作原理
1、PXE服务器和客户机的工作过程:
(1)PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。
(2)DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客机。(3)TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目录/var/lib/tftpboot/下。
(3)PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
(4)TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
(5)PXE客户机通过网络来启动到系统安装主界面。
(6)PXE客户机向文件共享服务器(ftp、http、nfs等)发起获取centos或windows系统安装文件的请求。
(7)文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。
(8)PXE客户机进入到安装提示向导界面,用户需要手动来完成系统安装的操作。
2、PXE
- 预启动执行环境,在操作系统之前运行。
3、服务端
- 运行DHCP服务,用来分配地址、定位引导程序。
- 运行TFTP服务,提供引导程序下载。
4、客户端
- 网卡支持PXE协议。
- 主板支持网络引导。
三、搭建PXE远程安装
1、实验前期环境准备
一台作为pxe服务器,一台作为客户机,裸金属客户、vmnet1网卡取消勾选dhcp配置、关闭核心防护和防火墙
主机服务器地址Server:192.168.10.130
yum install dhcp tftp-server.x86_64 vsftpd syslinux -y ###安装所需的服务
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf ##复制文件进行备份
(1)vi /etc/dhcp/dhcpd.conf ###修改dhcpd配置文件
(2)更改配置文件,disable设置成no启动TFTP服务 vim /etc/xinetd.d/tftp
(3)[root@zhantai ~]#cd /var/ftp/ ##切换到ftp目录下
[root@zhantai ftp]#mkdir centos7 ##新建文件夹
[root@zhantai ftp]#mount /dev/sr0 centos7/ ###挂载
[root@zhantai ftp]#cd centos7/isolinux/ ##切换目录
[root@zhantai isolinux]#cp initrd.img vmlinuz /var/lib/tftpboot/ ##拷贝
[root@zhantai isolinux]#cd /var/lib/tftpboot/ ##切换到目录
[root@zhantai tftpboot]#rpm -ql syslinux |grep linux.0
[root@zhantai tftpboot]#cp /usr/share/syslinux/pxelinux.0 . ##拷贝到本地目录
[root@zhantai tftpboot]#mkdir pxelinux.cfg ###创建文件夹
[root@zhantai tftpboot]#cd pxelinux.cfg ##切换
[root@zhantai pxelinux.cfg]#vim default ##写配置文件
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.10.130/centos7
[root@zhantai pxelinux.cfg]#systemctl stop firewalld ##关闭防火墙
[root@zhantai pxelinux.cfg]#setenforce 0 ##关闭核心防护
setenforce: SELinux is disabled
[root@zhantai pxelinux.cfg]#systemctl restart dhcpd ##重启服务
[root@zhantai pxelinux.cfg]#systemctl restart tftp vsftpd
[root@zhantai pxelinux.cfg]#
然后新建一台虚拟机测试,之后重启成功就可以了。如下图
2、kickstart 无人值守安装
(1)安装system-config-kickstart.noarch
[root@zhantai pxelinux.cfg]#yum install system-config-kickstart.noarch -y ##安system-config-kickstart.noarch
(2)在Server端安装配置,虚拟机打开"Kickstart配置程序”窗口
(3)配置kickstart选项
(4)配置好之后,左上角点击文件,保存到/var/ftp,文件名为ks.cfg
(5)添加 ks 引导参数至引导菜单文件default
到Server端重启出现下图就成功
总结
本文主要讲述如何部署PXE远程安装服务以及实现PXE+kickstart无人值守安装操作系统的详细步骤。