1.pxe的简单介绍
PXE(preboot execute environment,预启动执行环境),工作于Client/Server的网络模式,
支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,
终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)
或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,
由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
2.pxe的工作流程
1>.客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP
2>.DHCP服务器返回分给客户机IP以及bootstrap文件的放置位置(该文件一般是放在一台TFTP服务器上)
3>.客户机向本网络中的TFTP服务器索取bootstrap文件
4>.客户机取得bootstrap文件后之执行该文件
5>.根据bootstrap的执行结果,通过TFTP服务器加载内核和文件系统
6>.进入安装画面, 此时可以通过选择FTP,HTTP,NFS方式之一进行安装(常用HTTP)
示意图:
3.pxe具体配置流程
1>需要安装的服务
yum install httpd tftp-server dhcp syslinux -y
httpd ##共享安装资源
dhcp ##分配ip以及让客户主机获取pexlinux.0文件
pxelinux.0 ##预安装环境头文件,用来指定读取后续文件的程序
tftp-server ##提供tftp协议,令客户主机可以读取到预安装环境
syslinux ##提供pxelinux.0文件
2>.启用服务
1)关闭防火墙
systemctl stop firewalld
systemctl disable firewalld ##下次启动不启动防火墙
2)打开http服务
systemctl start httpd
systemctl enable httpd ##下次默认打开http
3)开启tftp服务:
netstat -anutlpe | grep xinetd
vim /etc/xinetd.d/tftp
14 disable = no ##打开tftp服务
systemctl restart xinetd.service
netstat -anutlpe | grep xinetd
udp 0 0 0.0.0.0:69 0.0.0.0:* 0 92471 5130/xinetd
4)启用dhcp服务
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf ##制作dhcp配置文件
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y ##按y,确定创建dhcp配置文件
vim /etc/dhcp/dhcpd.conf (将36行之后都删除掉)
1 option domain-name “example.com”; ##客户主机域名
2 option domain-name-servers 172.25.254.250; ##客户主机获得到的dns
3 default-lease-time 600; ##默认租约期
4 max-lease-time 7200; ##最长租约期
5 log-facility local7; ##日志级别
6 subnet 172.25.254.0 netmask 255.255.255.0 { ##网段,子网掩码
7 range 172.25.254.77 172.25.254.88; ##ip地址池
8 option routers 172.25.254.250; ##客户主机获得到的网关
9 filename “pxelinux.0”; ##客户主机获得到的预安装环境头文件
10 next-server 172.25.254.150; ##指定头文件所在主机的ip
11 }
systemctl start dhcpd
systemctl enable dhcpd
4.设定共享文件
1)制作安装源
mkdir /var/www/html/rhel7.0
mkdir /iso
mv /root/rhel-server-7.0-x86_64-dvd.iso /iso/
mount /iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.0/
vim /etc/rc.d/rc.local ##永久挂载
3 mount /iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.0/
chmod +x /etc/rc.d/rc.local ##给一个可执行权限,在开机的时候,就可以被执行!
2)制作预安装环境
cp /var/www/html/rhel7.0/isolinux/* /var/lib/tftpboot/
##isolinux/目录下有目录有内核和初始化文件等,复制到/var/lib/tftpboot/,在pexlinux.0引导客户主机访问tftp时,访问这些文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ ##复制pxelinux.0程序到此处
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
##pexlinux.0的配置文件是/var/lib/tftpboot/pxelinux.cfg/default
####修改等待时间为50ms
3)设定自动化部署
yum install system-config-kickstart -y
system-config-kickstart —–> /var/www/html/ks.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
label autoinstall ##选项标签
menu label ^Autoinstall RHEL7.0 ##标题
kernel vmlinuz ##启动的内核文件
append initrd=initrd.img repo=http://172.25.254.139/rhel7.0 ks=http://172.25.254.139/ks.cfg quiet
##初始化镜像 / ##安装资源 / ##自动安装脚本
cd /var/www/html/
vim ks.cfg #添加开机后运行的脚本
ksvalidator ks.cfg
systemctl restart dhcpd
测试:
假如更换此页面失败,可以修改一下图片尺寸,操作如下: