在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池子中获取的:

相关推荐
荒Huang43 分钟前
Linux挖矿病毒(kswapd0进程使cpu爆满)
linux·运维·服务器
海阔天空_20131 小时前
Python pyautogui库:自动化操作的强大工具
运维·开发语言·python·青少年编程·自动化
桥田智能1 小时前
气爪在自动化装配线中是如何应用的?
运维·自动化
九河云1 小时前
如何选择适合的AWS EC2实例类型
服务器·云计算·aws
Tassel_YUE2 小时前
网络自动化04:python实现ACL匹配信息(主机与主机信息)
网络·python·自动化
hjjdebug3 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal
其乐无涯3 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流3 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
写bug的小屁孩3 小时前
前后端交互接口(三)
运维·服务器·数据库·windows·用户界面·qt6.3
斑布斑布3 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习