在Pxe环境下使用kickstart自动化批量安装Linux系统

一、环境准备

1.rhel7.9操作系统

2.开启主机图形

bash 复制代码
systemctl set-default graphical.target
reboot

如果你的服务器安装了图形,直接切换启动级别5**:**

bash 复制代码
init 5

3.配置好ip,网关,dns地址

bash 复制代码
nmcli connection add ifname eth0 con-name eth0
type ethernet ipv4.method manual ipv4.addresses 172.25.254.120/24 
ipv4.gateway 172.25.254.2 ipv4.dns 114.114.114 

4.关闭wmware网卡dhcp自动获取ip

5.关闭防火墙

bash 复制代码
systemctl stop firewalld
systemctl disable firewalld
systemcl mask firewalld

6.准备一台没有镜像的操作系统

7.把rhel7.9的本地镜像挂载到/mnt下

bash 复制代码
mount /dev/sr0 /mnt

二、部署过程

由于通过kickstart打包好linux镜像自动化安装到多台虚拟机上,所以我们需要使用httpd服务共享到默认发布目录,这样其他的主机就能访问到镜像了,我们再用kickstart图形制作好自动化安装的脚本

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

如果你的本地源安装不了kickstart,尝试用下面的方法过滤出来再安装:

bash 复制代码
yum list | grep kick

把全名复制上去就能安装成功了

启动kickstart工具:

bash 复制代码
sysetem-config-kickstart

保存好之后,我们再把它存在root用户的家目录下:

进入/root后用ksvalidator命令检查一下有没有语法错误:

bash 复制代码
ksvalidator ks.cfg

然后我们把ks.cfg文件拷贝到http的自动发布目录下,再在/var/www/html下建立一个/mnt的软连接

bash 复制代码
ln -s /mnt mnt

重启http服务:

bash 复制代码
systemctl restart httpd

访问一下:

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

bash 复制代码
yum install dhcp -y

生成配置文件

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

进入dhcp的配置文件:

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

配置好之后退出启动dhcp服务:

bash 复制代码
systemctl enable --now dhcpd

下载syslinux

bash 复制代码
yum install syslinux.x86_64

下载共享pxelinux.0数据文件的网络服务

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

用rpm -ql看一下tftp的共享目录:

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

进入default目录

bash 复制代码
vim /var/lib/tftpboot/pxelinux.cfg/default

大功告成,我们只需要在我们的新操作系统中使用网卡启动模式:

退出后静待安装即可

在我们新安装的rhel7.9操作系统中,我们可以看见ip是从dhcp池子中获取的:

相关推荐
biter00886 分钟前
Ubuntu 22.04 有线网络时好时坏?最终解决方案
linux·网络·ubuntu
德育处主任17 分钟前
『NAS』轻松获取群晖自带的壁纸
服务器·docker
zzzsde27 分钟前
【Linux】基础开发工具(3):编译器
linux·运维·服务器
..空空的人1 小时前
C++基于websocket的多用户网页五子棋 ---- 整合封装服务器模块设计实现
运维·服务器
愚戏师2 小时前
Python3 多线程
linux·运维·服务器·python
n***33352 小时前
linux redis简单操作
linux·运维·redis
h***59332 小时前
使用Canal将MySQL数据同步到ES(Linux)
linux·mysql·elasticsearch
g***72702 小时前
(CICD)自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)
自动化·jenkins·maven
xu_yule3 小时前
网络和Linux网络-5(应用层)HTTP协议(方法+报头+状态码)
linux·网络·网络协议·http
n***4433 小时前
Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
服务器·http·node.js