Linux网络系列--PXE高效批量网络装机(使用PXE远程装机、实现无人值守自动装机)

news/2024/11/28 11:01:15/

文章目录

  • 一、 部署PXE远程安装服务
    • 1.1 搭建PXE远程安装服务器
      • 1.1.1 准备安装源
      • 1.1.2 安装 、配置dhcp服务
      • 1.1.3 安装和配置syslinux、tftp服务
      • 1.1.4 准备Linux内核、初始化镜像文件
      • 1.1.5 准备PXE引导程序、启动文件菜单
      • 1.1.6 启动服务
      • 1.1.7 进行测试
  • 二、 kickstart无人值守安装
    • 2.1 准备应答文件
      • 2.1.1 配置安装应答参数
      • 2.1.2 在配置文件default中指明应答文件位置
    • 2.2 测试阶段(之前的设置有坑,需要先看这里,再看2.1)

一、 部署PXE远程安装服务

PXE是由Inter公司开发的网络引导技术,是客户/服务器模式,允许客户机通过网络从远程服务器下载镜像,并加载安装文件或整个操作系统。

搭建PXE网络体系满足的条件:

  • 客户机的网卡支持PXE协议,主板支持网络引导
  • 网络中有一台DHCP服务器以便为客户机分配IP地址、指定引导文件位置
  • 服务器通过TFTP提供引导镜像文件的下载

1.1 搭建PXE远程安装服务器

以搭建集成centos7安装源、TFTP服务、DHCP服务的远程PXE装机服务器为例,能够向客户机裸金属机发送PXE引导程序、Linux内核、启动菜单等数据,以及提供安装文件。我们要F2进入启动项选择网络启动。

1.1.1 准备安装源

我们在虚拟机上要实现yum安装软件以及装机的功能,所以我们要给我们的PXE安装服务器配双网卡,一张绑定vm8(可以上网),另一张绑定vm1(不可上网,实现装机)。
服务器双网卡配置
在这里插入图片描述

[root@localhost ~]# cd  /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36   //复制网卡ens33的配置文件作为ens36的配置文件
[root@localhost network-scripts]# vi ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=b2230917-b565-406d-9361-86b607bceccd
DEVICE=ens33
ONBOOT=yes
IPADDR=20.0.0.17
PREFIX=24
GATEWAY=20.0.0.2
DNS1=8.8.8.8             
ens36网卡配置文件
[root@localhost network-scripts]# vi ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.100.100
PREFIX=24

注意:这里的ens36网卡不需要配网关

在这里插入图片描述
我们在VMware软件中新建一台虚拟机,需要改的地方只要将网络类型设置为仅主机,其余的全选默认,这里是不需要勾选镜像光盘的,因为我们是模拟裸金属机。
在这里插入图片描述

1.1.2 安装 、配置dhcp服务

[root@localhost ~]# yum install dhcp -y   //安装adcp服务
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf     //将dhcp实例文件复制到/etc/dhcp目录下覆盖原dhcp配置文件
cp:是否覆盖"/etc/dhcp/dhcpd.conf" y    //确认覆盖
[root@localhost ~]# vi /etc.dhcp/dhcpd.conf   //进入dhcp配置文件在27行处写入以下内容subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.150 192.168.100.200;option routers 192.168.100.100;option domain-name-servers 8.8.8.8;next-server 192.168.100.100;filename "pxelinux.0";}

1.1.3 安装和配置syslinux、tftp服务

[root@localhost ~]# yum install syslinux -y     //安装syslinux服务
[root@localhost ~]# rpm -ql syslinux | grep pxelinux.0   //查看pxelinux.0文件路径
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost ~]# yum install tftp-server -y   //安装tftp服务
[root@localhost ~]# 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 ~]# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/    //将文件pxelinux.0复制到站点目录下

启用tftp服务
vi /etc/xinetd.d/tftp ,将下面的yes改为no启用tftp服务
在这里插入图片描述
这里我们会将配置PXE需要的四个配置文件(pxelinux.0、initrd.img、 vmlinuz、default)中的pxelinux.0放到tptf的站点。

1.1.4 准备Linux内核、初始化镜像文件

[root@localhost ~]# yum install vsftpd -y    //安装ftp服务
[root@localhost ~]# cd /var/ftp/            
[root@localhost ftp]# ls
pub
[root@localhost ftp]# mkdir centos7          //创建一个目录centos7
[root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7/     //将光盘挂载到刚刚创建的目录下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]# df -Th                 //查看挂载情况
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda5      xfs        40G  4.5G   36G   12% /
devtmpfs       devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs          tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs          tmpfs     1.9G   13M  1.9G    1% /run
tmpfs          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda2      xfs        50G   33M   50G    1% /home
/dev/sda1      xfs       2.0G  174M  1.9G    9% /boot
tmpfs          tmpfs     378M   32K  378M    1% /run/user/0
/dev/sr0       iso9660   4.3G  4.3G     0  100% /var/ftp/centos7
[root@localhost ftp]# cd centos7/              
[root@localhost centos7]# ls
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
[root@localhost centos7]# cd images/
[root@localhost images]# ls
efiboot.img  pxeboot  TRANS.TBL
[root@localhost images]# cd pxeboot/
[root@localhost pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
[root@localhost pxeboot]# ls /var/lib/tftpboot/
initrd.img  pxelinux.0  vmlinuz

这一步我们已经将需要的四个配置文件中的三个配置文件放到了tftp的站点下

1.1.5 准备PXE引导程序、启动文件菜单

[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]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vi default   //编辑配置文件,将以下内容写进去
default auto   //默认是auto
prompt 1       //1秒后立即启动label autokernel vmlinuzappend initrd=initrd.img method=ftp://192.168.100.100/centos7label linux textkernel vmlinuzappend text initrd=initrd.img method=ftp://192.168.100.100/centos7label linux rescuekernel vmlinuzappend rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

1.1.6 启动服务

[root@localhost pxelinux.cfg]# systemctl stop firewalld.service    //关闭防火墙
[root@localhost pxelinux.cfg]# setenforce 0    //关闭内核防护
[root@localhost pxelinux.cfg]# systemctl start dhcpd    //开启dhcp服务
[root@localhost pxelinux.cfg]# systemctl start tftp     //开启tftp服务
[root@localhost pxelinux.cfg]# systemctl start vsftpd   //开启vsftp服务

1.1.7 进行测试

选择我们之前准备好的裸金属主机,直接点击开启
在这里插入图片描述

在这里插入图片描述
然后就出现了我们熟悉的界面
在这里插入图片描述
我们就实现了PXE远程安装服务器的部署。

二、 kickstart无人值守安装

在我们实现了PXE远程装系统后,我们还要手动的选择语言、键盘类型、指定安装源、分区等等一系列操作,如果是进行批量的安装,我们很非常不方便。
接下来我会讲以下kickstart工具是怎么实现全自动装机的,实现真正的一键安装。

2.1 准备应答文件

应答文件在我们安装好系统后就自己产生在我们的家目录中,也就是anaconda-ks.cfg 文件。
在这里插入图片描述
我们要实现一键部署,就要事先准备好应答文件

2.1.1 配置安装应答参数

[root@localhost ~]# yum install system-config-kickstart -y   //安装图形化向导工具

安装完成过后,我们就可以在图形化界面下看到Kickstart配置程序
在这里插入图片描述
我们打开Kickstart配置程序,每一个子选项依次设置
在这里插入图片描述
基本配置:在这里插入图片描述
安装方法:
在这里插入图片描述
引导装载程序选项:
在这里插入图片描述
分区信息:
在这里插入图片描述
最后一个分区的时候直接按以下方法全都划分给它。
在这里插入图片描述
网络配置:
在这里插入图片描述
验证:这里不用改。默认就行
防火墙设置:
在这里插入图片描述
显示设置:也是默认
在这里插入图片描述
软件包选择:我们会在之后根据之前安装主机的软件包来写入配置文件,这里也不需要改
在这里插入图片描述
预安装脚本:这里也是默认
在这里插入图片描述
安装后脚本:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这时候我们在刚刚保存的目录中找到了ks.cfg文件。并将软件包源写入配置文件。

[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
centos7  ks.cfg  pub
[root@localhost ftp]# vi /root/anaconda-ks.cfg
将以下的内容复制到/var/ftp/ks.cfg中
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@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

2.1.2 在配置文件default中指明应答文件位置

[root@localhost ftp]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ll
总用量 57872
-rw-r--r--. 1 root root 52584760 7  13 18:55 initrd.img
-rw-r--r--. 1 root root    26759 7  13 18:44 pxelinux.0
drwxr-xr-x. 2 root root       21 7  13 19:09 pxelinux.cfg
-rwxr-xr-x. 1 root root  6639904 7  13 18:55 vmlinuz
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# ll
总用量 4
-rw-r--r--. 1 root root 333 7  13 19:09 default
[root@localhost pxelinux.cfg]# vi default  将以下内容写入到图示位置
ks=ftp://192.168.100.100/ks.cfg

在这里插入图片描述

2.2 测试阶段(之前的设置有坑,需要先看这里,再看2.1)

我们在安装完成后直接选择启动,但是在安装完成后,重启会出现图示情况,一直加载不了系统
在这里插入图片描述
这是因为我们在Kickstart图形程序设置时,引导装载程序选项中我们选择了不安装引导程序,导致重启后一直没有程序引导,操作系统加载不了。我们在哪个地方改一下,重新生成应答文件。
在这里插入图片描述
然后重启,F2进入启动项,选择硬盘启动,就可以正常打开了。


http://www.ppmy.cn/news/668870.html

相关文章

【AI芯片】第四波计算浪潮到来:人工智能需要怎样的硬件?

来源:本文由电姬翻译自nextplatform,作者Nick Tausanovitch,谢谢。 美国投资公司Jefferies 最近一份报告称第四波计算浪潮已经开始,而且正受到物联网和并行处理方案的发展的推动。自 20 世纪 60 年代以来,计算领域的结…

马上2023年了,《北上广深杭》有哪些值得加入的软件测试大厂公司呢?花了三天三夜整理出各大互联网公司

IT行业做技术很公平,没那么看重出身,只要你技术好,能力强,就能进大厂,拿高薪。IT行业算是目前为数不多的比较容易屌丝逆袭的行业之一,IT行业也从来不缺少造富神话。一起加油吧,打工人&#xff0…

【题目精刷】2022AMD-数字IC-B

为了能够在做题目的过程中学习到需要的知识,对每道题知识参考或者知识详情都做了详细的说明。方便后续复习。欢迎对文中的解答批评指正。 这套题很多硬件知识,由于对硬件不了解,所以题目没有作答。 文章目录 1. Whichs setup timing check i…

ipmi 最新和MegaCli 监控磁盘和raid信息

集群监控之 —— ipmi操作指南 原创 2010年03月23日 16:45:00 标签:集群 /服务器 /command /callback /user /interface 12224 这两天,配置了一堆500来个节点的大型集群,被ipmi的问题困扰了一天半,到下午16:40&#xf…

计算机组成原理-1

小历史computer首先指一种职业,后来才指机器步进计算器(实现,沿用了3世纪,世界上第一台能做加减乘除全部四种运算的机器)(德国莱布尼茨制造)差分机(未实现,有草稿&#x…

芯片科普 | IC行业最全产业链梳理​

芯片种类越多、功能越强大,就越让人忍不住好奇:一颗芯片究竟是如何“披荆斩棘、打磨棱角”来到我们面前的? 芯片设计、芯片制造(晶圆加工)、芯片封装、芯片测试,这四大环节是一颗芯片从无到有的必经之路。…

Imagination开发者系列在线课程第三期:3D 图形介绍

为了让更多开发者和从业者了解 GPU 及相关技术,进行更好的技术探讨交流,Imagination 特别推出开发者系列在线课程。 本系列课程共包含:PowerVR架构概览;PowerVR 工具和SDK;3D 图形;PowerVR 性能建议指南&am…

2022年《北上广深杭》有哪些值得加入的软件测试大厂公司呢?花了三天三夜整理出各大互联网公司

目录 一、帝都(北京) 二、上海(魔都) 三、深圳 四、杭州 五、广州 六、成都篇 如果有大佬知道并且漏掉的大厂或值得加入的公司请大佬们在评论区补全,替粉丝们谢谢各位大佬! IT行业做技术很公平&…