文章目录
前言
PXE当初是作为Intel的有线管理体系的一部分,Intel 和 Systemsoft于1999年9月20日公布其规格(版本2.1) 。通过使用像网际协议(IP)、用户数据报协议(UDP)、动态主机设定协定(DHCP)、小型文件传输协议(TFTP)等几种网络协议和全局唯一标识符(GUID)、通用网络驱动接口(UNDI)、通用唯一识别码(UUID)的概念并通过对客户机(通过PXE自检的电脑)固件扩展预设的API来实现目的。
PXE 客户机(client)这个术语是指机器在PXE启动过程中的角色。一个PXE 客户机(client)可以是一台服务器、桌面级电脑、笔记本电脑或者其他装有PXE启动代码的机器。
一、部署PXE远程安装
1.1、搭建PXE远程安装服务器
1.1.1、服务器的批量部署
优点:
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
1.1.2、PXE
预启动执行环境,在操作系统之前运行
1.1.3、服务端
运行DHCP服务,用来分配地址、定位引导程序
运行TFTP服务,提供引导程序下载
1.1.4、客户端
网卡支持PXE协议
主板支持网络引导
1.1.5、部署PXE装机服务器
基本部署过程
1、准备CentOS 7安装源
2、安装并启用TFTP服务
3、提供linux内核、PXE引导程序等
4、安装并启用DHCP服务
5、配置启用菜单
安装并启用TFTP服务
安装tftp-server软件包,启用tftp服务
配置文件位于 /etc/xined.d/tftp
DHCP服务的PXE服务
next-server 服务器IP地址 ;
filename “pxelinux.0” ;
配置default 启动菜单(需手动书写配置)
文件位置:/var/lib/tftpboot/pxelinux.cfg/default
整个安装过程所需的软件包有四个: dhcp; tftp-server ; vsftpd ; syslinux
二、实验
2.1、实验环境
一台仅作为裸硬件的客户机;
另外一台作为部署PXE的服务端(虚拟机准备两块网卡,我的是ens33和ens36,一个是仅主机模式,因为实验是在局域网环境下进行的,一个是NAT模式,因为需要下载软件包)
2.2、实验步骤
裸金属主机,设置仅主机模式
镜像文件自动检测,裸金属主机里面什么都没有,没有系统
因为是PXE安装
PXE服务器
设置两张网卡,一个NAT模式,一个仅主机模式,仅主机模式就能和裸金属连接起来
配置ens36的网卡配置
配置命令
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
不要配置网关。192.168.100.1的网关不存在
重启网络服务,ens36的IP地址配置好了
[root@localhost network-scripts]# yum install tftp-server -y
[root@localhost network-scripts]# yum install syslinux -y
[root@localhost network-scripts]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost network-scripts]# rpm -ql tftp-server
/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot
[root@localhost network-scripts]# vim /etc/xinetd.d/tftp
[root@localhost network-scripts]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost network-scripts]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
pxelinux.0
[root@localhost tftpboot]# yum install vsftpd -y
[root@localhost ftp]# cd centos7/images
[root@localhost images]# cd pxeboot
[root@localhost pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/ '将文件复制到tftp站点中'
[root@localhost pxeboot]# ls /var/lib/tftpboot
initrd.img pxelinux.0 vmlinuz[root@localhost pxeboot]# cd /var/lib/tftpboot
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 vmlinuz
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
创建default配置文件
关闭防火墙,清空防火墙规则,开启服务
裸金属开机
三、kickstart无人值守安装
3.1、kickstart无人值守技术
●创建应答文件,预先定义好各种安装设置
●免去交互设置过程,从而实现全自动化安装
3.2、应答文件的来源
●安装使用system-config-kickstart工具创建新的应答文件
●编辑Centos 7系统中现有的应答文件,将/root/anaconda-ks.cfg中定制的软件包组拷贝到ks.cfg中
3.3、将PXE与kickstart结合使用
安装好system-config-kickstart工具后,可以按照如下所示步骤进行预定义各种安装设置创建应答文件,创建完可以保存在/root目录下,文件名为ks.cfg
mv /root/ks.cfg /var/ftp/ks.cfg ##将应答文件移动到ftp站点
从/root/anaconda-ks.cfg中拷贝定制的软件包组拷贝到ks.cfg中,内容如下:
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools
%end
vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0 ##取消用户等待,boot:不用敲回车,直接开始装系统了
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg
##引导配置文件中加入应答文件地址