PXE自动化网络安装(Linux系统)环境部署

一、什么是PXE

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,PXE可以引导多种操作系统,如Windows95/98/2000/windows2003,linux系列等

二、自动安装原理

1.客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP 
2.DHCP服务器返回分给客户机IP 
3.客户机向本网络中的TFTP服务器索取文件 
4.客户机取得bootstrap文件后之执行引导文件完成引导 
5.然后读取配置文件,通过TFTP服务器加载内核和文件系统
6.进入安装画面, 此时可以通过选择HTTP、FTP、NFS方式进行安装

PXE网络安装必需的4个要素:

1.客户机的网卡必须为PXE网卡 
2.网络中必须要有DHCP和TFTP服务器,当然这两个服务器可以是同一台物理主机 
3.所安装的操作系统必须支持网络安装 
4.必须要有FTP,HTTP,NFS至少一个服务器,当然也可以和DHCP和TFTP服务器同为一台物理主机

三、PXE实现自动化网络安装Linux系统实验

服务器——虚拟机 desktop(172.25.254.127)
真机——foundation61(172.25.254.61)
测试机——虚拟机 node1
镜像:rhel7.0(本实验rhel7.0镜像在/var/www/html/rhel7.2目录下挂载,请读者不要误解。)

1、配置dhcp
(1)安装dhcp

 [root@pxe ~]# yum install dhcp -y

(2)复制dhcp文件模板

[root@pxe ~]# cp  /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

在这里插入图片描述
(3)编辑文件

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)重启dhcp服务

[root@pxe ~]# systemctl restart dhcpd

2、安装syslinux

[root@pxe ~]# yum install syslinux -y

3、安装tftp-server

[root@pxe ~]# yum install tftp-server -y

4、生成安装头文件

[root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

5、tftp服务启用,是通过改变其守护进程来启用的
(1)使用chkconfig,可以看到tftp服务没有启用

[root@pxe ~]# chkconfig 

在这里插入图片描述
(2)打开守护进程服务

[root@pxe ~]# systemctl start xinetd.service

(3)将disable呢一行改成no,表示启用tftp服务,保存退出

[root@pxe ~]# vim /etc/xinetd.d/tftp

在这里插入图片描述
(4)重启服务

[root@pxe ~]# systemctl restart xinetd.service

tftp服务已启用了
在这里插入图片描述
6、编辑dhcp配置文件

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

在这里插入图片描述
重启服务

[root@pxe ~]# systemctl restart dhcpd

7、关闭火墙

[root@pxe ~]# systemctl stop firewalld

8、测试(用另外一个虚拟机测试)
设置客户机从网卡启动

 [root@foundation61 kiosk]# virt-manager

在这里插入图片描述
此时没有预安装界面
在这里插入图片描述
9、设定共享文件
(1)在pxe服务器上,我们现在来创建配置文件

[root@pxe ~]# cd /var/lib/tftpboot/
[root@pxe tftpboot]# ls
pxelinux.0
[root@pxe tftpboot]# vim pxelinux.0 
[root@pxe tftpboot]# cd /var/lib/tftpboot/
[root@pxe tftpboot]# mkdir pxelinux.cfg
[root@pxe tftpboot]# ls
pxelinux.0  pxelinux.cfg

(2)在真机上,查看镜像,因为安装时是从镜像安装的,所以需要从镜像中导入所有的安装的文件

[root@foundation61 kiosk]# cd /var/www/html/rhel7.2/isolinux/
[root@foundation61 isolinux]# ls
boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL    vesamenu.c32
boot.msg  initrd.img  isolinux.cfg  splash.png  upgrade.img  vmlinuz
[root@foundation61 isolinux]# scp * [email protected]:/var/lib/tftpboot

(3)在pxe服务器上
将isolinux.cfg复制到目录pxelinux.cfg下,并重命名为desault
这是因为文件中指定读取pxelinux.cfd中default的内容

[root@pxe tftpboot]# ls
boot.cat   initrd.img    memtest       splash.png   vesamenu.c32
boot.msg   isolinux.bin  pxelinux.0    TRANS.TBL    vmlinuz
grub.conf  isolinux.cfg  pxelinux.cfg  upgrade.img
[root@pxe tftpboot]# cp isolinux.cfg pxelinux.cfg/
[root@pxe tftpboot]# cd pxelinux.cfg/
[root@pxe pxelinux.cfg]# ls
isolinux.cfg
[root@pxe pxelinux.cfg]# mv isolinux.cfg default      # 重命名
[root@pxe pxelinux.cfg]# ll
total 4
-r--r--r--. 1 root root 3166 Dec 18 09:39 default
[root@pxe pxelinux.cfg]# chmod u+w default 
[root@pxe pxelinux.cfg]# ll
total 4
-rw-r--r--. 1 root root 3166 Dec 18 09:39 default

(4)编辑default文件

[root@pxe pxelinux.cfg]# vim default

在这里插入图片描述
(5)测试
可以看到预安装界面了,选择第一个安装
在这里插入图片描述
但是安装失败

(6)修改配置文件

[root@pxe pxelinux.cfg]# vim default

修改第64行调整网络镜像源,此时就可以安装成功了
在这里插入图片描述
再次安装 成功。
在这里插入图片描述
10、修改预安装信息
(1)修改默认等待时间
默认等待60s
在这里插入图片描述
编辑default文件

[root@pxe pxelinux.cfg]# vim default

将默认等待时间修改为10s(10=1s)
在这里插入图片描述
测试:等待时间为10s
在这里插入图片描述
(2)整默认读取第一条
编辑default文件

[root@pxe pxelinux.cfg]# vim default

在这里插入图片描述
修改成功
在这里插入图片描述
(3)调整标题名称
编辑default文件

[root@pxe pxelinux.cfg]# vim default

在这里插入图片描述
修改成功
在这里插入图片描述
(4)第11行修改 menu title Red Hat YangYang Linux 7.3 ##修改大标题名称
在这里插入图片描述
(5)替换背景图片
首先安装软件ImageMagick

[root@pxe pxelinux.cfg]# yum install ImageMagick -y

将我们要的背景图片格式化为默认的640x480的

[root@pxe pxelinux.cfg]# cd /root/Pictures/
[root@pxe Pictures]# file tup.png 
tup.png: PNG image data, 823 x 693, 8-bit/color RGBA, non-interlaced
[root@pxe Pictures]# convert -resize 640x480! tup.png zhao.png   # 将 tup.png生成 zhao.png并640x480且大小为
[root@pxe Pictures]# file zhao.png       #修改成功
zhao.png: PNG image data, 640 x 480, 8-bit/color RGBA, non-interlaced

!!注意:
非强制的转化,自适应(不加叹号)
强制性的转化,可能会比例失调(加叹号)

将转化好的图片传到/var/lib/tftpboot

[root@pxe pxelinux.cfg]# cd ..
[root@pxe tftpboot]# pwd
/var/lib/tftpboot
[root@pxe tftpboot]# cp /root/Pictures/zhao.png .

在这里插入图片描述
编辑default文件

[root@pxe tftpboot]# vim pxelinux.cfg/default 

将第10行修改为刚才的背景图片
在这里插入图片描述
测试:背景替换成功
在这里插入图片描述
11、安装httpd服务,并开启服务设置为开机自启动

[root@pxe tftpboot]# yum install httpd -y
[root@pxe tftpboot]# systemctl start httpd
[root@pxe tftpboot]# systemctl enable httpd

12、自动化部署配置
(1)搭建一个网络yum源

[root@pxe tftpboot]# vim /etc/yum.repos.d/rhel_dvd.repo

在这里插入图片描述
(2)安装 system-config-kickstart 自动应答脚本制作工具

[root@pxe tftpboot]# yum install system-config-kickstart.noarch -y

(3)运行自动应答脚本制作工具制作自动应答脚本

[root@pxe tftpboot]# system-config-kickstart

进行如下设置:
在这里插入图片描述
HTTP server 为服务器ip,HTTP Directory 选择镜像的挂载点
在这里插入图片描述
在这里插入图片描述
都选第一个,并添加三个分区
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分区添加完成如下
在这里插入图片描述
添加一个为eth0的网络设备;选择DHCP
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择默认即可
在这里插入图片描述
关闭火墙
在这里插入图片描述
在这里插入图片描述
添加开机后的动作,这里可以根据自己的需求进行设置
在这里插入图片描述
保存:Ctrl+S
将文件保存到/var/www/html下,以方便实现共享
在这里插入图片描述
在浏览器上输入http://服务端ip/ks.cfg,可以看到文件共享出来了
在这里插入图片描述
配置ks.cfg文件

[root@pxe ~]# cd /var/www/html/
[root@pxe html]# ls
ks.cfg
[root@pxe html]# vim ks.cfg

修改时区
在这里插入图片描述
添加安装软件(根据自己的需求设定,但要注意格式)

38 %packages   
 39 @base     # base组
 40 @core        
 41 @fonts   
 42 @gnome-desktop   
 43 @input-methods       # 输入法
 44 @x11      
 45 lftp
 46 vnc    
 47 %end

在这里插入图片描述
检查ks.cfg是否有语法错误(不报错i就没有错误)

[root@pxe html]# ksvalidator /var/www/html/ks.cfg

指定安装源 ,添加读取ks.cfg文件路径
在这里插入图片描述
测试:通过网卡,自动安装过程如下
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43275140/article/details/85063872