菜鸟笔记:超详细的PXE+KickStart全自动安装Linux图文实战教程

您所在的位置:网站首页 菜鸟笔记docker 菜鸟笔记:超详细的PXE+KickStart全自动安装Linux图文实战教程

菜鸟笔记:超详细的PXE+KickStart全自动安装Linux图文实战教程

2023-10-23 15:38| 来源: 网络整理| 查看: 265

    PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系统等。

菜鸟笔记:超详细的PXE+KickStart全自动安装Linux图文实战教程插图

接下来本教程将指导大家如何使用PXE预启动执行环境+KickStart自动部署进行批量装机模拟。

展开索引

一、PXE基础装机环境1.1 前提

要求为PXE服务器构建提供CentOS7软件仓库,完成下列步骤:

在主机andyx.net服务器部署Web目录/var/www/html/dvd挂载CentOS7光盘镜像文件到该目录访问 http://192.168.1.10/CentOS7/ 测试,确保可用1.2 思路

PXE网络装机的整体思路 —— 装机条件准备:

准备CentOS7安装源(HTTP方式YUM库)启用DHCP服务

PXE网络装机的整体思路 —— PXE引导配置:

启用TFTP服务,提供装机用的内核、初始化文件提供PXE引导程序、配置启动菜单1.3 步骤

步骤一:通过 HTTP 方式发布CentOS7软件源

1)快速构建httpd服务器(若已构建,此步可跳过)

[[email protected] ~]# yum -y install httpd         //装包 [[email protected] ~]# systemctl restart httpd         //启动服务 [[email protected] ~]# systemctl enable httpd         //设置开机自启

2)准备yum仓库(CentOS完整版ISO),部署到Web子目录

[[email protected] ~]# mkdir /var/www/html/dvd     //建挂载点 [[email protected] ~]# vim /etc/fstab .. .. /ISO/CentOS7-1908.iso /var/www/html/dvd iso9660 loop,ro 0 0 [[email protected] ~]# mount -a                         //挂载ISO镜像文件 [[email protected] ~]# ls /var/www/html/dvd/         //确认部署位置

步骤二:确保yum仓库HTTP资源可用

从client1客户端浏览器访问http://192.168.1.10/dvd/,可看到仓库资源。

二、配置并验证DHCP服务2.1 前提

为PXE客户机提供地址分配服务,在主机andyx.net服务器上搭建支持PXE的DHCP服务器,提供的地址参数如下:

IP地址范围 192.168.1.11~240/24PXE引导服务器位于 192.168.1.10、引导文件 pxelinux.0

然后在客户端 client1 上使用dhclient命令测试 DHCP地址分配服务。

2.2 思路

DHCP地址分配的四次会话:DISCOVERY –> OFFER –> REQUEST –>ACK 。

DHCP服务器基本概念:

DHCP租期:允许客户机租用IP地址的时间期限,单位为秒DHCP作用域:分配给客户机的IP地址所在的网段DHCP地址池:用来动态分配的IP地址的范围

DHCP服务端:软件包dhcp、系统服务dhcpd

DHCP服务端配置文件:/etc/dhcp/dhcpd.conf

传输协议及端口:UDP 67(服务器)、UDP 68(客户端)

2.3 步骤

步骤一:配置DHCP服务端

1)安装dhcp软件包

[[email protected] ~]# yum -y install dhcp .. ..

2)建立dhcpd.conf服务配置

[[email protected] ~]# vim /etc/dhcp/dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.11 192.168.1.240; next-server 192.168.1.10; filename "pxelinux.0"; }

3)启动系统服务dhcpd,并设置开机自启

[[email protected] ~]# systemctl restart dhcpd [[email protected] ~]# systemctl enable dhcpd Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

4)服务器andyx.net上确认dhcpd服务状态

[[email protected] ~]# netstat -anptu | grep dhcpd udp 0 0 0.0.0.0:67 0.0.0.0:* 58693/dhcpd .. ..

步骤二:在客户端测试DHCP服务

1)使用dhclient命令测试,观察获取IP地址的过程

[root@client1 ~]# dhclient -d eth0 Internet Systems Consortium DHCP Client 4.2.5 Copyright 2004-2013 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ .. .. DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0x9c0385e) DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x9c0385e) DHCPOFFER from 192.168.1.10 DHCPACK from 192.168.1.10 (xid=0x9c0385e) bound to 192.168.1.10 -- renewal in 13001 seconds. ^C                                 //按Ctrl+c键退出测试

2)若因操作异常导致IP故障,可恢复客户机原有IP配置

# 强制结束dhclient进程 [root@client1~]# killall -9 dhclient # 激活原网卡配置 [root@client1 ~]# nmcli connection up eth0 .. ..三、配置PXE引导3.1 前提

要求为PXE装机提供引导服务,并提供必要的素材,完成下列步骤:

启用TFTP服务器,部署引导文件(内核vmlinuz、初始文件initrd.img、网卡启动程序pxelinux.0)创建pxelinux.cfg/配置目录,在此目录下建立默认引导文件default3.2 思路

TFTP,Trivial File Transfer Protocol:简单文件传输协议,通过UDP 69端口提供小文件的传输服务,默认应将资源部署到/var/lib/tftpboot目录下,不支持认证和目录访问等复杂FTP操作。

网卡启动程序pxelinux.0由软件包syslinux提供。

PXE安装用的内核及初始化文件可从CentOS7的光盘目录/images/pxeboot/下提取。

PXE启动配置相关资料可参考CentOS7的光盘目录/isolinux/,其中包括图形支持模块vesamenu.c32、背景图片spash.png、菜单配置文件isolinux.cfg(使用时改名为default)。

3.3 步骤

步骤一:快速部署TFTP服务器

1)安装tftp与tftp-server软件包

[[email protected] ~]# yum -y install tftp tftp-server .. ..

2)启动系统服务tftp,并设置开机自启

[[email protected] ~]# systemctl restart tftp [[email protected] ~]# systemctl enable tftp Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.

步骤二:部署启动文件

1)拷贝pxelinux.0程序,部署到TFTP目录

在软件包syslinux提供的目录下找到pxelinux.0程序

[[email protected] ~]# yum -y install syslinux [[email protected] ~]# rpm -ql syslinux | grep pxelinux.0 /usr/share/syslinux/gpxelinux.0 /usr/share/syslinux/pxelinux.0

将其拷贝到/var/lib/tftpboot/目录下,确认部署结果:

[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ [[email protected] ~]# ls /var/lib/tftpboot/ pxelinux.0

2)拷贝引导装机的内核、初始镜像,部署到TFTP目录

当文件较多时,可以在TFTP目录下创建子目录:

[[email protected] ~]# mkdir -p /var/lib/tftpboot/CentOS7

再通过CentOS7光盘目录找到PXE版内核vmlinuz、初始镜像initrd.img,将其拷贝到上述子目录:

[[email protected] ~]# cd /var/lib/tftpboot/CentOS7/ #下载内核、初始化文件 [[email protected] CentOS7]# wget http://192.168.1.10/dvd/isolinux/vmlinuz [[email protected] CentOS7]# wget http://192.168.1.10/dvd/isolinux/initrd.img

确认部署结果:

[[email protected] pxeboot]# ls -R /var/lib/tftpboot/ /var/lib/tftpboot/: pxelinux.0 CentOS7 /var/lib/tftpboot/CentOS7: initrd.img vmlinuz

步骤三:配置启动菜单

1)创建配置目录

[[email protected] ~]# mkdir /var/lib/tftpboot/pxelinux.cfg #注意这个pxelinux.cfg是目录名称

2)以光盘中的isolinux目录为模板,拷贝必要的文件

[[email protected] ~]# cd /var/lib/tftpboot/ # 下载的vesamenu.c32文件提供图形支持 [[email protected] tftpboot]# wget http://192.168.1.10/dvd/isolinux/vesamenu.c32 # 下载的splash.png文件提供启动背景图片显示 [[email protected] tftpboot]# wget http://192.168.1.10/dvd/isolinux/splash.png # 下载的isolinux.cfg文件用于建立菜单配置 [[email protected] tftpboot]# wget -O pxelinux.cfg/default http://192.168.1.10/dvd/isolinux/isolinux.cfg # 确认部署结果 [[email protected] isolinux]# ls -R /var/lib/tftpboot/ /var/lib/tftpboot/: pxelinux.0 pxelinux.cfg CentOS7 splash.png vesamenu.c32 /var/lib/tftpboot/pxelinux.cfg: default /var/lib/tftpboot/CentOS7: initrd.img vmlinuz

3)调整启动参数

[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default default vesamenu.c32                             //默认交给图形模块处理 timeout 600                                     //选择限时为60秒(单位1/10秒) .. .. menu title PXE Installation Server             //启动菜单标题信息 .. .. label linux                                 //菜单项标签 menu label ^Install CentOS7 Linux 7 kernel CentOS7/vmlinuz                     //内核的位置 append initrd=CentOS7/initrd.img inst.stage2=http://192.168.1.10/dvd                                                  //初始镜像、安装源位置 label rescue menu label ^ CentOS7 system kernel CentOS7/vmlinuz append initrd=CentOS7/initrd.img inst.stage2=http://192.168.1.10/dvd rescue label local                                     //从硬盘启动 menu default                             //默认启动方式 menu label Boot from ^local drive localboot 0xffff menu end

步骤四:访问TFTP服务端确保可用

1)在client1上安装tftp命令工具

[root@client1 ~]# yum -y install tftp .. ..

2)在client1上访问主机andyx.net服务器上的TFTP服务端,下载文件测试

[root@client1 ~]# tftp 192.168.1.10 -c get pxelinux.0 # 检查下载结果 [root@client1 ~]# ls -lh pxelinux.0 -rw-r--r--. 1 root root 27K 9月 13 15:48 pxelinux.0四、验证PXE网络装机(手动版)4.1 前提

沿用第三阶段,现在要求新建一台虚拟机,完成PXE网络装机的过程测试:

选择采用URL源,自动获取IP地址指定路径 http://192.168.1.10/dvd后续过程与光盘本地安装相同4.2 思路

熟悉PXE客户机装机的引导环节:

通过DHCP配置网卡、获知TFTP地址及PXE启动文件从TFTP服务器下载PXE启动文件读取启动配置(pxelinux.cfg/default)根据用户选择下载 vmlinuz 和 initrd.img内核 vmlinuz 运行后,主导安装过程4.3 步骤

步骤一:新建虚拟机pxe_tester

新建一台虚拟机,注意将安装方式选择“网络引导(PXE)”(如下图所示)

PXE全自动安装Linux

注意:如果是生产环境中已经有系统的客户机,则需要调整BIOS设置,将网络引导作为第一启动设备。

步骤二:启动虚拟机pxe_tester,验证PXE网络安装过程

1)确认启动界面

客户机通过PXE引导以后,可以获得服务端提供的配置界面(如下图所示)

PXE全自动安装Linux

2)选择第一个菜单项开始安装CentOS7操作系统

成功出现CentOS7安装程序的欢迎界面,根据提示选择中文(如下图所示)后继续。

PXE全自动安装Linux

3)下一步需手动选择安装源

指定位于http://192.168.1.10/dvd的软件仓库,软件选择、安装位置等设置根据需要指定,确认后继续。

后续过程与正常的光盘安装类似,不再赘述。

顺利操作到这里说明PXE网络引导安装的目标已经实现了。

 

五、PXE+kickstart自动装机(全自动版)5.1 前提

要求在PXE服务器上为CentOS7客户机准备ks应答文件,完成下列步骤:

实现全自动的安装及配置能够自动配好YUM仓库

然后在客户机上验证PXE+kickstart全自动装机过程:

再次将测试客户机从PXE启动并安装完成后,重启客户机并验证结果5.2 思路

使用图形配置工具system-config-kickstart来生成应答文件

5.3 步骤

步骤一:准备应答文件

找一台CentOS7系统的模板虚拟机,使用配置工具生成应答文件。

1)在服务机上安装system-config-kickstart软件包

[[email protected] ~]# yum -y install system-config-kickstart .. ..

2)调整服务机的yum仓库设置

清理掉无关的yum源,只保留为客户机安装CentOS7系统所必要的yum源,并且将源的ID修改为development。

[[email protected] ~]# vim /etc/yum.repos.d/dvd.repo [development] name = CentOS Linux 7 baseurl = http://192.168.1.10/dvd gpgcheck = 0

3)运行system-config-kickstart工具,创建应答文件

在支持图形程序的环境运行system-config-kickstart,即可打开该配置工具(如下图所示)。

PXE全自动安装Linux

通过“文件”菜单打开/root/anaconda-ks.cfg文件,作为应答配置模板,这样可以节省很多时间(如下图所示)。

根据需要确认默认语言、时区,设置根口令、磁盘分区规划等基本信息。

PXE全自动安装Linux

在安装方法部分,选择“执行新安装”,并正确设置HTTP安装源的访问地址信息(如下图所示)。

PXE全自动安装Linux

在分区信息部分,选择清除主引导记录、删除所有现存分区、初始化磁盘标签,并手动添加/boot 200MB、SWAP分区 2000MB、/分区 所有剩余空间(如下图所示)。

PXE全自动安装Linux

在网络配置部分,确认已添加第一块网卡,设为DHCP自动获取(如下图所示)。

PXE全自动安装Linux

在防火墙配置部分,禁用SELinux、禁用防火墙(如下图所示)。

PXE全自动安装Linux

在软件包选择部分,根据客户机的实际需要定制。比如若要使用图形桌面环境,建议将GNOME相关的包勾选上(如下图所示)。

注意:若要使用图形界面,客户端需要至少2GB内存,低于2GB可能导致装机失败。

PXE全自动安装Linux

在安装后脚本部分,添加经验证的正确可执行语句,使客户机装好系统后能够自动配好YUM源(如下图所示)。

PXE全自动安装Linux

确认上述调整后,通过“文件”菜单将其保存为/root/ks.cfg。

4)应答文件微调整

删除掉随模板机配置残留的不可用仓库记录(比如以repo –name开头的Server-HighAvailability、Server-ResilientStorage、autopart等行)

[[email protected] ~]# vim /root/ks.cfg install                                                 //安装基本信息设置 xconfig --startxonboot keyboard --vckeymap=cn --xlayouts='cn' rootpw --iscrypted $1$.93Ri2Op$e.0Bn5/93JronYwb739Yg3 timezone Asia/Shanghai url --url="http://192.168.1.10/dvd"                 //安装源设置 lang zh_CN firewall --disabled #repo --name="Server-HighAvailability" --baseurl=file:///run/install/repo/addons/HighAvailability #repo --name="Server-ResilientStorage" --baseurl=file:///run/install/repo/addons/ResilientStorage #autopart --type=lvm                                     //分区设置 zerombr clearpart --all --initlabel part /boot --fstype="xfs" --size=200 part swap --fstype="swap" --size=2000 part / --fstype="xfs" --grow --size=1 .. .. %post --interpreter=/bin/bash                         //安装后脚本设置 echo '[CentOS7] name = CentOS Linux 7 baseurl = http://192.168.1.10/dvd gpgcheck = 0' > /etc/yum.repos.d/CentOS7.repo %end %packages                                             //软件包设置 @^graphical-server-environment @base @core @desktop-debugging @development .. .. initial-setup initial-setup-gui -NetworkManager -NetworkManager-team .. .. %end

步骤二:部署应答文件

1)将应答文件部署在客户机可访问的位置

部署并确认文件:

[[email protected] ~]# cp /root/ks.cfg /var/www/html/ # 检查部署的文件 [[email protected] ~]# ls -lh /var/www/html/ks.cfg -rw-r--r--. 1 root root 4.5K 9月 13 23:40 /var/www/html/ks.cfg

在客户端下载应答文件,确保可访问:

[root@client1 ~]# wget http://192.168.1.10/ks.cfg .. .. 2019-09-13 23:48:19 289 MB/s) - “ks.cfg” 已保存 [4508] # 检查下载的文件 [root@client1 ~]# ls -lh ks.cfg -rw-r--r--. 1 root root 4.5K 9月 13 23:42 ks.cfg

2)在PXE服务器上修改default引导配置,调用应答文件

找到相应的label启动项,在append后添加ks=应答文件地址,去掉原有的inst.stage2参数设置:

[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default .. .. label linux menu label ^Install CentOS7 Linux 7 kernel CentOS7/vmlinuz append initrd=CentOS7/initrd.img ks=http://192.168.1.10/ks.cfg .. ..

步骤三:验证PXE+kickstart自动应答

1)新建一台虚拟机裸机,确认支持PXE网卡启动

新建一台虚拟机裸机,注意以下事项:将内存设为2G;网络段要与andyx.net服务器的相同。

2)启动虚拟机裸机,验证PXE网络安装过程

正常PXE引导,选择第一个启动项回车确认即快速进入全自动安装,后续过程基本无需人工干预(如下图所示)。

PXE全自动安装Linux(END)若需转载本文,请标注来源与链接:AndyX.Net 超详细的PXE+KickStart全自动安装Linux图文实战教程 浏览量: 1,883打赏赞(1)分享相关文章:菜鸟笔记:如何在Linux系统中执行sudo命令时免密码运行 菜鸟笔记:LinuxPerformance学习笔记之iostat命令详解 菜鸟笔记:如何用Nginx实现 反向绑定/缓存加速/自动更新缓存/获取真实IP/CDN加速 菜鸟笔记: tcpdump 与 Wireshark 抓包分析实战教程 抓包原理以及TCP握手详解


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3