PXE服务器实现自动部署

PXE服务器特点

  • 规模化:同时装配多台服务器
  • 自动化:安装系统、配置各种服务
  • 远程实现:不需要光盘、U盘等安装介质

关于PXE网络

PXE,Pre-boot eXcution Environment
       预启动执行环境,在操作系统之前运行
       可用于远程安装、构建无盘工作站
服务端
       运行DHCP服务,用来分配地址、定位引导程序
       运行TFTP服务器,提供引导程序下载
客户端
       网卡支持PXE协议
       主板支持网络启动

准备工作

  • 一台PXE服务器待部署
  • 一台待安装虚拟机(注意:虚拟机需要至少2G以上内存
  • 关闭防火墙
  • 关闭Selinux
  • 安装软件(dhcp、tftp-server、httpd、syslinux(此软件包含了PXE的一些启动软件))

配置dhcp

有关dhcp服务器请参阅:
https://blog.csdn.net/hhhhhhhzp/article/details/116538941?spm=1001.2014.3001.5501

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

配置一下参数

subnet 192.168.100.0 netmask 255.255.255.0 {
     range 192.168.100.100 192.168.100.120;
     default-lease-time 3600;
     filename "pxelinux.0";				#pxe关键引导文件
     next-server 192.168.100.10;		#TFTP服务器地址
}

重启dhcpd服务

配置TFTP

[root@localhost ~]# vim /etc/xinetd.d/tftp		#tftp主子配置文件

将disable字段改为no表示启动该服务

service tftp
{
		...
        disable                 = no
        ...
}

重启tftp.socket服务

拷贝关键文件

tftp的根目录:/var/lib/tftpboot/

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/	#复制引导文件到ftp根目录下
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/		#将菜单文件复制到tftp根目录下
[root@localhost ~]# mkdir /media/cdrom					#创建光盘挂载点 
[root@localhost ~]# mount /dev/sr0 /media/cdrom/		#将安装光盘挂载到刚才创建的目录
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# cp /media/cdrom/isolinux/vmlinuz /var/lib/tftpboot/	#将第一个CentOS7引导文件复制到tftp根目录
[root@localhost ~]# cp /media/cdrom/isolinux/initrd.img /var/lib/tftpboot/	#将第二个CentOS7引导文件复制到tftp根目录
[root@localhost ~]# ls /var/lib/tftpboot/
initrd.img  menu.c32  pxelinux.0  vmlinuz

建立default菜单文件

[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg/	#创建存放default文件目录
[root@localhost ~]# vim default		#创建default文件

在文件中键入:

default menu.c32	#调用菜单文件
timeout 300		#超时时间
prompt 0		#固定写法
label 1			#菜单标签
menu label ^1) Install CentOS7	#菜单项
menu default	#默认安装以上选项
kernel vmlinuz	#调用内核文件
append initrd=initrd.img method=http://192.168.100.10/CentOS7 ks=http://192.168.100.10/ks.cfg	
#initrd表示调用引导文件		method表示安装介质位置		ks表示安装脚本位置

配置web服务器

进入/var/www/html(web文件目录),创建CentOS7目录待挂载

[root@localhost ~]# mkdir /var/www/html/CentOS7
[root@localhost ~]# umount /dev/sr0 	将光盘取消挂载
[root@localhost ~]# mount /dev/sr0 /var/www/html/CentOS7/	#将光盘重新挂载到CentOS目录下
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# systemctl start httpd	#开启httpd服务

保证可以访问到光盘,利用本机测试,由于我使用的是NAT模式的网络
在这里插入图片描述

编辑ks.cfg文件

[root@localhost ~]# cp /root/anaconda-ks.cfg /var/www/html/ks.cfg	#将root下的ks文件拷贝到web数据目录中
[root@localhost ~]# chmod +r /var/www/html/ks.cfg	#给文件添加可读权限

利用浏览器确认可以查看到文件内容
在这里插入图片描述
如图所示表示成功

[root@localhost ~]# vim /var/www/html/ks.cfg	#编辑文件内容

需要更改以下配置(参照)

auth --enableshadow --passalgo=sha512
#cdrom		#将此行注释
url --url http://192.168.100.10/CentOS7
#graphical	#将此行注释
text
firstboot --enable
ignoredisk --only-use=sda
keyboard --vckeymap=cn --xlayouts='cn'
lang zh_CN.UTF-8
network  --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate
network  --hostname=localhost.localdomain
rootpw --iscrypted $6$x9ISI2qOZBOKqfGj$xFwVPCnhtiTXSR3tAQwfKtdde6.0aojMe1uCQHImH/jCCsnAnASWzuksXmXGqjHTdU1Mxsjhqr1rDhhl9lBIb/
services --enabled="chronyd"
timezone America/New_York --isUtc
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
clearpart --all --initlabel
%packages
@^minimal
@core
@development
chrony
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
reboot	#在最后一行加入reboot,不然会让手动重启

重启所有服务,使配置生效

[root@localhost ~]# systemctl restart tftp.socket httpd.service dhcpd.service

新建虚拟机开机验证
在这里插入图片描述

在这里插入图片描述
等待一段时间之后会自动重启进入登录界面
nice

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屎到淋头还嚼便

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值