1、原理说明:
- PXE Client:表示需要安装操作系统的机器,统称客户端;
- TFTP server:表示安装TFTPD服务的机器;
- DHCP server:表示安装DCHPD服务的机器;
在实际的操作中往往将TFTP、DHCP部署在一台机器上,统称为服务端
2、工作流程:
- 客户端向服务器上DHCP发送请求IP地址消息,DHCP检查客户端是否合法,如果合法则返回客户端的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给客户端;
- 客户端向服务器上的TFTP发送获取pxelinux.0信息,TFTP接收到信息后再向客户端发送pxelinux.0大小信息,试探客户端是否满意。当TFTP收到客户端返回的同意大小信息之后,正式向客户端发送pxelinux.0;
- 客户端运行接收到的pxelinux.0文件;
- 客户端向TFTP发送针对本机的配置文件信息(记录在TFTP上的pxelinux.cfg目录下),TFTP将配置文件发给客户端,客户端根据配置文件执行后续操作;
- 客户端向TFTP发送请求Linux内核信息,TFTP接收到信息后将内核发送给客户端;
- 客户端向TFTP发送根文件请求,TFTP接收到消息之后返回Linux根文件系统;
- 客户端启动Linux内核;
- 客户端进入安装模式;
3、适用场景:
- 服务器无光驱或者光驱损坏,需要安装Linux操作系统;
- 对系统维护不适当,导致需要频繁安装Linux操作系统;
- 需要大规模批量部署Linux操作系统;
4、前提条件:
- 客户机网卡支持PXE协议(集成BOOTROM芯片),主板支持网络引导(BIOS中调整);
- 网络中有DHCP服务器为客户机自动分配网络地址,并且指定引导文件位置;
- 服务器通过TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载;
PXE(Pre-boot Execution Environment,预启动执行环境)结合Kickstart配置实现无人值守自动安装;
5、什么是PXE?
严格来说,PXE并不是一种安装方式,而是一种引导的方式。进行PXE安装的必要条件是要安装的计算机中包含一个PXE支持的网卡(NIC),即网卡中必须要有PXE clinet。PXE(Pre-boot Execution Environment)协议使计算机可以通过网络启动。协议分为Client和server端,PXE Client在网卡的ROM中,当计算机引导时,BIOS把PXE Client调入内存执行,由PXE Client将放置在远端的文件通过网络下载到本地运行。运行PXE协议需要设置DHCP服务器和TFTP服务器。DHCP服务器用来给PXE Client(将要安装系统的主机)分配一个IP地址,由于是给PXE Client分配IP地址,所以在配置DHCP服务器时需要增加相对应的PXE设置。此外,在PXE Client的ROM中,已经存在了TFTP Client。PXE Client通过TFTP协议到TFTPserver上下载所需的文件。
6、什么是KickStart?
KickStart是一种无人值守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件。在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装着安全可以只告诉安装程序从何处取ks.cfg文件;
PXE服务环境部署-服务器IP:10.10.10.109(功能实现:半自动)
(1)安装并启用TFTP服务:
TFTP服务由TFTP-server软件包提供,默认由xinetd超级服务运行管理,因此配置文件位于/etc/xinetd.d/tftp。配置时只要将“disable=yes”改为“disable=no”。然后启动xinetd服务即可;TFTP该服务不要用于外网,TFTP用于内部就可以了,因为用于TFTP到外网不安全,容易遭受黑客攻击;
/etc/init.d/iptables stop
setenforce
mount /dev/cdrom /mnt/
rpm -i /mnt/Packages/vsftpd-2.2.-.el6_4..x86_64.rpm
umount /dev/cdrom
mkdir /var/ftp/rhel6
mount /dev/cdrom /var/ftp/rhel6/
service vsftpd restart
确保在浏览器输入:ftp://10.10.10.109/rhel6,能访问到以下内容;
修改本地yum源:
vim /etc/yum.repos.d/yum.repo
------------------------------------------------------
[base]
name=Red Hat Enterprise Linux
baseurl=ftp://10.10.10.109/rhe16
gpgcheck=
------------------------------------------------------
安装TFTP软件:
yum -y install tftp-server
vim /etc/xinetd.d/tftp
/etc/init.d/xinetd start
查看那个端口被那个进程占用:lsof -i:端口
注:xinetd是互联网守护进程服务
(2)准备Linux内核、初始化镜像文件:
用于PXE网络安装的Linux内核,初始化镜像文件可从光盘中找到分别为vmlinuz和initrd.img 位于images/pxeboot下,将两个文件复制到tftp服务的根目录下。
cd /var/ftp/rhe16/images/pxeboot/
cp vmlinuz initrd.img /var/lib/tftpboot/
(3)准备PXE引导程序、启动菜单文件:
用于PXE网络安装的引导程序为pxelinux.0 由软件包syslinux提供,安装软件包后将文件复制到tftp服务的根目录下。
yum -y install syslinux
cp /usr/share/syslinux/pxelinux. /var/lib/tftpboot/
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像,默认的启动菜单为default,应放置tftp根目录的pxelinux.cfg子目录中。
mkdir -p /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
---------------------------------------------------------------------
default auto
prompt
label auto
kernel vmlinuz
append initrd=initrd.img devfs=nomount ramdisk size=
---------------------------------------------------------------------
定义了三个引导入口,分别是图型安装(默认),文本安装,救援模式
Prompt 设置是否等待用户选择
Label 定义并分隔启动项
Kernel append 定义引导参数
(4)安装并启动DHCP服务:
用来为客户机(裸机)自动分配地址并指定引导文件位置
yum -y install dhcp
vim /etc/dhcp/dhcpd.conf
---------------------------------------------------------------------
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.110 10.10.10.200;
option routers 10.10.10.109;
next-server 10.10.10.109;
option domain-name "xingzhen.com";
default-lease-time ;
max-lease-time ;
filename "pxelinux.0";
}
以下为意思翻译
option domain-name "amber.com"; //选择域名
default-lease-time ; //指定默认租约时间的长度,单位是秒
max-lease-time ; //指定最大租约时间的长度,单位是秒
log-facility local7; //记录设备 subnet 192.168.52.0 netmask 255.255.255.0 { //描述一个IP地址是否属于该子网
range 192.168.52.100 192.168.52.200; //提供动态IP的范围
option routers 192.168.52.1; //选择路由器
next-server 192.168.52.88; //指定TFTP服务器的地址(本地)
filename "pxelinux.0"; //指定PXE引导程序的文件名
---------------------------------------------------------------------
/etc/init.d/dhcpd start
验证PXE网络安装:
1. 新购买的服务器不需要额外的设置直接启动
2. 已有操作系统的服务器启动时调整BIOS中的Boot选项将Network或LAN设置为第一个,然后启动服务器。
在boot: 直接回车 或者输入auto,将会进入默认的图形安装入口
选择相应的语言
设置键盘类型
选择通过URL安装
编辑网卡
设置PXE网络安装服务器
图形化安装配置程序
实现KickStart无人值守安装-全自动
使用kickstart工具配置安装应答文件,自动安装安装过程中的各种设置,无需手动干预,提高装机效率
1. 通过系统中system-config-kickstart工具生成配置文件
2. 修改系统中已有的/root/anaconda-ks.cfg文件
yum -y install system-config-kickstart
在linux的桌面窗口中执行如下命令,这里可以不用去Linux的桌面窗口,直接在xshell中执行:system-config-kickstart,但是会报错:
报错:system-config-kickstart
Could not open display because no X server is running.
Try running 'system-config-kickstart --help' for a list of options.
如果报以上错误可以安装以下软件:
yum -y install gdm
dgm是图形支持的插件,安装完成以后就可以使用了!但是如果你在xshell命令输入system-config-kickstart还是会报上面的错误,我们使用xmanager链接服务器:
找到xstart这个软件:双击它,
图中的2部分是输入IP地址:
如果是去Linux本机服务器操作可以执行以下命令:但是必须是安装了图形化界面的Linux操作系统才行哟~
system-config-kickstart
Linux图形化界面操作图2
配置图如下,按照以下操作,选择对应的即可,也可选择自己需要的去执行;
在生产环境中:
预安装脚本:可用户安装加载一些外置卡的驱动,例如RAID卡
安装后脚本:可用于设置一些初始化配置
cp /root/ks.cfg /var/ftp/pub/
vim /var/lib/tftpboot/pxelinux.cfg/default #把之前的内容改掉,写上以下内容,即可!
-----------------------------------------------------------------
default auto
prompt
label auto
kernel vmlinuz
append ks=ftp://10.10.10.109/pub/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=8192
-----------------------------------------------------------------
vim /var/ftp/pub/ks.cfg
在firewall --disabled前面添加以下内容即可:
unsupported_hardware
在/var/ftp/pub/ks.cfg文件中添加的内容主要是解决以下报错: