【云原生】搭建pxe网络安装环境实现服务器自动部署

一、前期环境

1、rhel7主机

本实验采用红帽镜像7.9,并且此实验必须在虚拟机的终端内完成,不可以使用xshell等远程工具。

2、开启主机图形界面

bash 复制代码
init 5

注意:如果虚拟机安装的不是图形界面的虚拟机,则要先安装图形界面。

bash 复制代码
yum groupinstall "Server with GUI"

3、配置网络可用

使用命令 ifcongig 查看是否存在IP,若不存在则配置IP。

注意:作者实验虚拟机IP为172.25.254.77

4、关闭vmware dhcp功能

编辑 --> 虚拟网络编辑器 --> 更改设置 --> 将VMnet8中的使用本地DHCP服务将IP地址分配给虚拟机的选项取消勾选 --> 应用

二、实验步骤

(一)kickstart自动安装脚本制作

1、图形制作工具下载

bash 复制代码
yum install -y system-config-kickstart

2、启动图形制作工具

bash 复制代码
system-config-kickstart

3、图形界面设置

(1)Basic Configuration
(2)Installation Method

做这一步的时候,要让网页能看见挂载目录,则我们可以再开启一个终端进行创建软链接操作。

bash 复制代码
ln -s /mnt /var/www/html

浏览器中:172.25.254.77/mnt

当我们看到目录内容则表示内容显示成功,如若显示失败,可以查看apache服务是否启动。

(3)Boot Loader Options
(4)Partition Information

(5)Network Configuration
(6)Firewall Configuration
(7)Display Configuration
​​​​​​(8)Post-Installation Script
(9)保存

4、添加包

bash 复制代码
vim ks.cfg

%packages
@base ===> 软件组
httpd ===> 软件包
%end

5、服务器查看 ks.cfg 信息

bash 复制代码
mv /root/ks.cfg /var/www/html

(二)搭建dhcp服务环境

1、软件包下载

bash 复制代码
yum install -y dhcp

安装dhcp服务器为其他服务器提供分配ip的功能。

2、查看dhcp软件配置文件

bash 复制代码
rpm -qc dhcp

#
#DHCP Server Configuration.file.
#    see /usr/share/doc/dhcp*/dhcpd.conf.example
#    see /dhcpd.conf(5) man page
#

用 cat /etc/dhcp/dhcpd.conf 命令查看会发现该文件为空,但是有几行提示,根据提示发现有模板。

3、复制模板

bash 复制代码
\cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

\ :转义符,上述命令是将cp命令告诉系统

(三) 搭建pxe网络安装环境

1、安装软件

bash 复制代码
yum install -y syslinux.x86_64

后续步骤可以用 less /usr/share/doc/syslinux-4.05/pxelinux.txt 命令查看步骤内容

bash 复制代码
yum install -y tftp-server.x86_64

作用:共享pxelinux.0数据文件的网络服务

2、启动服务

可以用 rpm -ql tftp-server 查看启动服务名称

bash 复制代码
systemctl enable --now tftp
bash 复制代码
rpm -ql tftp-server

/var/lib/tftpboot:共享目录

3、建立数据目录和文件

bash 复制代码
cp /mnt/isolinux/* /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cd /var/lib/tftpboot/
cp isolinux.cfg pxelinux.cfg/default

4、编辑dhcp配置文件

bash 复制代码
vim /etc/dhcp/dhcpd.conf

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the 
# DHCP server to understand the network topology.

#subnet 10.152.187.0 netmask 255.255.255.0 {
#}

# This is a very basic subnet declaration.

subnet 172.25.254.0 netmask 255.255.255.0 { ===> 前:网段 后:子网掩码
  range 172.25.254.30 172.25.254.40; ===> 地址池
  option routers 172.25.254.2; ===> 网关
  next-server 172.25.254.77; ===> 下一个服务主机,即tftp所在主机
  filename "pxelinux.0"; ===> 会读取 /var/lib/tftpboot/pxelinux.cfg/default 下的内容
}

总结:

  • 注释subnet 10.152.187.0 netmask 255.255.255.0 {}
  • 删除subnet 10.254.239.10 netmask 10.254.239.10 {}之后的所有内容
  • 修改网段、子网掩码、地址池、网关
  • 添加下一个服务主机、读取内容

5、修改pxe配置文件

bash 复制代码
vim /var/lib/tftpboot/pxelinux.cfg/default
  • 将 label check 中的 menu default 剪切到 label linux
  • 将 label linux 中的 append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.9\x20Server.x86_64 quiet 修改为 append initrd=initrd.img repo=http://172.25.254.77/mnt ks=http://172.25.254.77/ks.cfg quiet
  • 将 timeout 600 修改为 timeout 30

注意:此文件保存用wq!

三、实验测试及结果

使用另一台主机,选择打开电源时进入固件

设置网卡启动

当开始安装时实验成功!

我们这个设置是将它设置为从网卡启动,它并没有那么智能,当我们关闭客户机再重新启动时,它不会像服务器一样第一次安装完成后从硬盘启动,如果我们不调试,会进入一个无限快乐循环阶段,当我们的实验环境需要做的时候,需要再从打开电源时进入固件进入base变成硬盘启动模式。

相关推荐
鹏大师运维10 小时前
为什么信创电脑装软件总提示“软件包架构不匹配”?
linux·运维·架构·国产化·麒麟·deb·统信uos
007张三丰11 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
weixin_6042366712 小时前
华三 路由器 极简核心配置
运维·服务器·网络·h3c·h3c路由器
鹤落晴春12 小时前
【Linux复习】管理SELinux安全性
linux·运维·服务器
yz_aiks12 小时前
Linux Jar包配置Systemd自启动实战:从排查到配置全流程
linux·python·jar·自启动·systemd
AI智图坊13 小时前
多件装组合SKU图的批量生产效率分析:从PS手工到AI自动化的工作流改造
大数据·运维·人工智能·gpt·ai作画·自动化·aigc
bjzhang7514 小时前
CentOS下安装MySQL详解
linux·mysql·centos
换个昵称都难15 小时前
webrtc 音频模块FEC模块
网络·音视频·webrtc
鹤落晴春15 小时前
【K8s】Pod调度、configMaps
云原生·容器·kubernetes
Jason_chen16 小时前
Linux 6.2 音频机制深度解析:AI驱动的低延迟音频与零信任音频安全架构
linux