部署PXE实现Kickstart无人值守安装
一、部署PXE远程安装服务
1.PXE服务相关介绍
PXE是有Intel公司开发的网络引导技术,工作在Client/Server模式(也简称CS模式),允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整改操作系统。
2..若要搭建PXE网络体系,必须要满足一下几个前提条件
客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导; |
网络中有一台DHCP服务器以便于为客户机自动分配IP地址、指定引导文件位置; |
服务器通过TFTP(简单文件传输协议)提供引导镜像文件的下载 |
3.PXE服务具备的优点
规模化:同时装配多台服务器,无需每一台单独安装操作系统; |
自动化:实现服务器的自动安装及自动配置各种服务; |
远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。 |
4.PXE服务的工作原理
PXE(Pre-boot Execution Environment远程引导技术)是RPL (Remote Initial Program Load远程启动服务)的升级产品。它们的不同之处为: RPL是静态路由,PXE是动态路由。
RPL 是根据网卡上的ID号加上其它的记录组成的一个帧向服务器发出请求,而服务器那里早已经有了这个ID数据,匹配成功则进行远程启动;
PXE则是根据服务器端收到的工作站MAC地址(就是网卡号)使用DHCP服务给这个MAC地址指定一个IP地址,每次重启动可能同一台工作站有与上次启动有不同的IP,即动态分配地址
以工作站引导过程说明PXE的原理:
工作站开机后,PXEBootROM(自启动芯片)获得控制权之前先做自我测试,然后以广播形式发出一个请求FIND帧。 |
如果服务器收到工作站所送出的要求,就会送回DHCP回应,内容包括用户端的IP地址,预设通讯通道,及开 机映像文件。否则,服务器会忽略这个要求。 |
工作站收到服务器发回的相应后则会回应一个帧,以请求传送启动所需文件。之后,将有更多的讯息在工作站与服务器之间作应答,用以决定启动参数。 |
BootROM 由TFTP通讯协议从服务器下载开机映像档,这个映像档就是软盘的映像文件 |
工作站使用TFTP协议接收启动文件后,将控制权转交启动块,引导操作系统,完成远程启动 |
5.搭建PXE远程安装服务器大概步骤
操作前相关介绍:
PXE远程安装服务器集成了CentOS 7安装源、TFTP服务、DHCP服务、FTP服务,能够向客户机裸机发送 PXE引导程序、Linux内核、启动菜单等数据,以及提供安装文件 |
TFTP(简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP端口69; |
xineta是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级Internet服务。 |
第一步:安装启用TFTP服务
yum install -y tftp-server xinetd #使用yum安装tftp-server 和 xinetd程序 vim /etc/xinetd.d/tftp #修改TFTP服务的配置文件,如下: #将tftp和xinetd服务开启并设为开机自启 |
第二步:安装启用DHCP服务
yum install -y dhcp #使用yum安装dhcp服务 ddns-update-style none; #禁用DNS动态更新(取消原有的#号) subnet 192.168.80.0 netmask 255.255.255.0 { #声明要分配的网段地址 #启用DHCP服务并设为开机自启 |
第三步:准备Linux内核、初始化镜像文件
cd /mnt/images/pxeboot/ #进入到挂载的光盘目录(无法进入的话检查挂载情况) |
第四步:准备PXE引导程序
yum install -y syslinux ##PXE引导程序由软件包syslinux 提供 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制PXE引导程序到TFTP根目录下 |
第五步:安装FTP服务,准备CentOS 7安装源
yum install -y vsftpd #使用yum安装vsftpd服务 #将vsftpd服务开启并设置为开机自启动 |
第六步:配置启动菜单文件
#默认的启动菜单文件在TFTP根目录的pxelinux.cfg 子目录下,文件名为default, mkdir /var/lib/tftpboot/pxelinux.cfg #创建目录 default auto #指定默认入口名称 label auto #图形安装(默认)引导入口,label用来定义启动项 label linux text #text安装(默认)引导入口,label用来定义启动项 label linux rescue #rescue安装(默认)引导入口,label用来定义启动项 |
第七步:关闭防火墙和安全防护,验证PXE网络安装
systemctl stop firewalld #关闭防火墙 setenforce 0 #关闭安全防护 |
6.使用VMware搭建PXE远程安装服务器详细步骤
第一步:安装并启用TFTP服务
检查yum本地源是否配置正确和是否已经挂载。
2)使用yum安装tftp-server 和 xinetd程序
)修改TFTP服务的配置文件
4)将tftp和xinetd服务开启并设为开机自启
第二步:安装启用DHCP服务
1)使用yum安装dhcp服务,从/usr/share/doc/dhcp-4.2.5/目录中复制dhcpd.conf.example配置文件到 /etc/dhcp/中,并修改名称为dhcpd.confdhcp覆盖原文件。
2)修改dhcpd.conf配置文件
第三步:准备Linux内核、初始化镜像文件
第四步:准备PXE引导程序
第五步:安装FTP服务,准备CentOS 7安装源
第六步:配置启动菜单文件
第七步:关闭防火墙和安全防护,验证PXE网络安装
1)关闭防火墙和安全防护
2)在VMware中创建新Linux虚拟机,内存选择为至少2G,其他无需改变,在启动boot页面直接回车即可
3)自动装机成功,但是可以看到安装设置仍然自己手动操作,这时就需要我们的Kicstart无人值守安装了。
二、实现Kickstart无人值守安装
上面介绍了通过PXE技术远程安装CentOS 7 系统的方法,安装介质不再受限于光盘、移动硬盘等设备,大大提高了系统安装的灵活性,然而安装期间人需要手动选择语言、键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便,这里我将介绍通过Kickstart工具配置安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率,同时也可以在应答文件中通过添加%post脚本,完成安装后的各种配置操作(这里我举例添加脚本自动挂载光盘)
1.实现kickstart无人值守安装大概步骤
第一步:安装应答文件
yum install -y system-config-kickstart #安装Kickstart程序 |
第二步:打开Kickstart配置程序窗口
通过桌面菜单“应用程序”————>>“系统工具”————>>“Kickstart”打开, |
或者执行 |
system-config-kickstart #调出Kickstart配置程序 |
第三步:配置Kickstary选项
> 1)基本配置 : |
第四步:保存自动应答文件
选择“Kickstart 配置程序“窗口的”文件”—————>>“保存命令”,选择指定保存位置,文件名为ks.cfg 默认保存在/root/ks.cfg cp /root/ks.cfg /var/ftp/ks.cfg #将ks.cfg文件复制到FTP根目录下 |
第五步:配置需要安装的软件包
可以根据需要将/root/anaconda-ks.cfg的软件包安装脚本复制到ks.cfg文件中,只需要复制%packages到%end部分即可。 |
如要求最小化安装,可复制下面内容: |
vim ks.cfg |
%packages |
@^minimal |
%end |
第六步:编辑引导菜单文件default,添加ks引导参数
vim /var/lib/tftpboot/pxelinux.cfg/default label auto |
第七步:测试功能,将之前新创建未配置的虚拟机重启即可测试。