PXE 网络引导快速部署虚拟机
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial f
·
PXE概述:
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,
支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,
再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,
由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,
如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系统等。
PXE网络安装原理:
1.客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP
2.DHCP服务器返回分给客户机IP
3.客户机向本网络中的TFTP服务器索取文件
4.客户机取得bootstrap文件后之执行引导文件完成引导
5.然后读取配置文件,通过TFTP服务器加载内核和文件系统
6.进入安装画面, 此时可以通过选择HTTP、FTP、NFS方式进行安装
PXE网络安装四要素:
1.客户机的网卡必须为PXE网卡
2.网络中必须要有DHCP和TFTP服务器,当然这两个服务器可以是同一台物理主机
3.所安装的操作系统必须支持网络安装
4.必须要有FTP,HTTP,NFS至少一个服务器,当然也可以和DHCP和TFTP服务器同为一台物理主机
1.网络引导安装虚拟机
(1).修改主机名并配置yum源
##修改主机名
[root@station ~]# hostnamectl set-hostname pxe-server
##测试yum源
[root@pxe-server ~]# yum clean all
[root@pxe-server ~]# yum repolist
(2).搭建dhcp服务
搭建详情点击此处博客链接 https://blog.csdn.net/lilygg/article/details/83144861
(3).安装部署pxe程序
##搜索不到
[root@pxe-server ~]# yum search pxe
##可以搜索到
[root@pxe-server ~]# yum whatprovides */pxe*
##1.安装syslinux
[root@pxe-server ~]# yum install -y syslinux-4.05-12.el7.x86_64
[root@pxe-server ~]# rpm -ql syslinux.x86_64
[root@pxe-server ~]# yum search tftp
##2.安装tftp-server
[root@pxe-server ~]# yum install -y tftp-server.x86_64
[root@pxe-server ~]# rpm -ql tftp-server
##3.共享预启动环境
[root@pxe-server ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
##开启tftp服务失败
[root@pxe-server ~]# systemctl start tftp.service
[root@pxe-server ~]# systemctl status tftp.service
##4.安装守护进程
[root@pxe-server ~]# yum install -y xinetd
##5.开启守护进程
[root@pxe-server ~]# systemctl start xinetd.service
##6.允许开启tftp服务
[root@pxe-server ~]# vim /etc/xinetd.d/tftp
####################
14 disable = no ##允许开启tftp服务
##7.重启xinetd服务
[root@pxe-server ~]# systemctl restart xinetd.service
##查看开机系统选项
[root@pxe-server ~]# chkconfig
##8.开启tftp服务成功
[root@pxe-server ~]# systemctl start tftp.service
[root@pxe-server ~]# systemctl status tftp.service
(4).关联dhcp服务和pxe程序tftp
##1.编写文件
[root@pxe-server ~]# vim /etc/dhcp/dhcpd.conf
####################
33 next-server 172.25.254.126;
34 filename "pxelinux.0";
##网络安装引导时,读取126主机的pxelinux.0文件(/usr/share/syslinux/pexlnux.0)
##2.重启dhcp服务
[root@pxe-server ~]# systemctl restart dhcpd
##3.关闭火墙
[root@pxe-server ~]# systemctl stop firewalld
测试:(重新打开一台主机并用网卡启动)
查看网卡信息:
网卡启动:
发现此时启动失败
(5).建立目录
[root@pxe-server ~]# cd /var/lib/tftpboot/
[root@pxe-server tftpboot]# ls
pxelinux.0
[root@pxe-server tftpboot]# mkdir pxelinux.cfg
[root@pxe-server tftpboot]# ls
pxelinux.0 pxelinux.cfg
[root@pxe-server tftpboot]# cd pxelinux.cfg/
[root@pxe-server pxelinux.cfg]# ls
[root@pxe-server pxelinux.cfg]# pwd
/var/lib/tftpboot/pxelinux.cfg
(6).拷贝镜像文件
[root@foundation34 ~]# df
[root@foundation34 ~]# cd /var/www/html/source7.2
[root@foundation34 source7.2]# ls
addons images Packages RPM-GPG-KEY-redhat-release
EFI isolinux release-notes TRANS.TBL
EULA LiveOS repodata
GPL media.repo RPM-GPG-KEY-redhat-beta
[root@foundation34 source7.2]# cd isolinux/
[root@foundation34 isolinux]# ls
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vesamenu.c32
boot.msg initrd.img isolinux.cfg splash.png upgrade.img vmlinuz
##1.拷贝isolinux.cfg文件到/var/lib/tftpboot/pxelinux.cfg目录中
[root@foundation34 isolinux]# scp isolinux.cfg root@172.25.254.34:/var/lib/tftpboot/pxelinux.cfg
[root@pxe-server pxelinux.cfg]# pwd
/var/lib/tftpboot/pxelinux.cfg
[root@pxe-server pxelinux.cfg]# ls
isolinux.cfg
##2.重命名;是为了让它可以识别
[root@pxe-server pxelinux.cfg]# mv isolinux.cfg default
[root@pxe-server pxelinux.cfg]# ls
default
[root@pxe-server pxelinux.cfg]# cd ..
[root@pxe-server tftpboot]# pwd
/var/lib/tftpboot
[root@pxe-server tftpboot]# ls
pxelinux.0 pxelinux.cfg
##3.拷贝所有文件到/var/lib/tftpboot/目录下
[root@foundation34 isolinux]# pwd
/var/www/html/source7.2/isolinux
[root@foundation34 isolinux]# scp * root@172.25.254.126:/var/lib/tftpboot/
[root@pxe-server tftpboot]# pwd
/var/lib/tftpboot
[root@pxe-server 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
(7).编写文件
[root@pxe-server pxelinux.cfg]# pwd
/var/lib/tftpboot/pxelinux.cfg
[root@pxe-server pxelinux.cfg]# ls
default
##查看权限
[root@pxe-server pxelinux.cfg]# ll default
-r--r--r--. 1 root root 3166 Dec 8 14:46 default
##更改权限
[root@pxe-server pxelinux.cfg]# chmod u+w default
[root@pxe-server pxelinux.cfg]# vim default
###############################
64 append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.2\x20Server.x86_64
##删除 quit
测试:(重启测试主机)
发现此时仍然启动失败
(8).更改镜像位置
[root@pxe-server pxelinux.cfg]# vim default
###############################
64 append initrd=initrd.img repo=http://172.25.254.26/source7.2
测试:
网路引导安装虚拟机成功
2.管理虚拟机
(1).更改调整等待时间
[root@pxe-server pxelinux.cfg]# pwd
/var/lib/tftpboot/pxelinux.cfg
[root@pxe-server pxelinux.cfg]# vim default
###############################
2 timeout 100
测试:
(2).更改标题名称
[root@pxe-server pxelinux.cfg]# pwd
/var/lib/tftpboot/pxelinux.cfg
[root@pxe-server pxelinux.cfg]# vim default
###############################
62 menu label hello world!
测试:
(3).更改默认进入的标题
[root@pxe-server pxelinux.cfg]# pwd
/var/lib/tftpboot/pxelinux.cfg
[root@pxe-server pxelinux.cfg]# vim default
###############################
63 menu default
测试:
(4).更改默认背景
##1.先下载一张.png图片
[root@foundation34 ~]# cd /home/kiosk/Pictures/Wallpapers
[root@foundation34 Wallpapers]# ls
feng.png
##搜索软件
[root@foundation34 ~]# yum whatprovides */convert
##2.安装更改图片大小的工具
[root@foundation34 ~]# yum install -y ImageMagick-6.7.8.9-15.el7_2.x86_64
[root@foundation34 ~]# cd /home/kiosk/Pictures/Wallpapers
[root@foundation34 Wallpapers]# ls
feng.png
##更改图片的大小
[root@foundation34 Wallpapers]# convert -resize 640x480 feng.png tp.png
[root@foundation34 Wallpapers]# file feng.png
feng.png: PNG image data, 490 x 306, 8-bit/color RGBA, non-interlaced
##3.强制更改图片大小
[root@foundation34 Wallpapers]# convert -resize 640x480! feng.png tp.png
##查看图片的大小
[root@foundation34 Wallpapers]# file feng.png
feng.png: PNG image data, 640 x 480, 8-bit/color RGBA, non-interlaced
##4.传输图片
[root@foundation34 Wallpapers]# scp tp.png root@172.25.254.126:/var/lib/tftpboot/
[root@pxe-server mnt]# cd /var/lib/tftpboot
[root@pxe-server tftpboot]# ls
boot.cat initrd.img memtest splash.png upgrade.img
boot.msg isolinux.bin pxelinux.0 tp.png vesamenu.c32
grub.conf isolinux.cfg pxelinux.cfg TRANS.TBL vmlinuz
##5.更改默认背景
[root@pxe-server pxelinux.cfg]# pwd
/var/lib/tftpboot/pxelinux.cfg
[root@pxe-server pxelinux.cfg]# vim default
###############################
10 menu background tp.png
测试:(重启测试主机)
(5).kickstart自动安装虚拟机
##1.安装apahce服务
[root@pxe-server ~]# yum install -y httpd
##2.打开apache服务
[root@pxe-server ~]# systemctl start httpd
##3.安装kickstart工具
[root@pxe-server ~]# yum install -y system-config-kickstart.noarch
##4.设定虚拟机安装信息
[root@pxe-server ~]# system-config-kickstart
[root@pxe-server ~]# cd /var/www/html
[root@pxe-server html]# ls
ks.cfg
##5.更改时区,选择安装包
[root@pxe-server html]# vim ks.cfg
#######################
10 timezone Asia/Shanghai ##更改时区
50 %packages ##选择安装包
51 @base
52 @core
53 @fonts
54 @gnome-desktop
55 @input-methods
56 @x11
57
58 lftp
59 vnc
60 %end
##6.检测语法
[root@pxe-server html]# ksvalidator ks.cfg
网页测试:
输入 http://172.25.254.126/ks.cfg
##关联kickstart与pxe
[root@pxe-server html]# vim /var/lib/tftpboot/pxelinux.cfg/default
#######################
65 append initrd=initrd.img repo=http://172.25.254.26/source7.2 ks=http://172 .25.254.126/ks.cfg
重启测试主机:
完成自动安装虚拟机
更多推荐
已为社区贡献14条内容
所有评论(0)