PXE简介
PXE:Pre-boot Excution Environment,预启动执行环境
PXE 是由 Intel 公司开发的网络引导技术,工作在 Client / Server 模式,允许客户机通过网络从远程服务器
下载引导镜像,并加载安装文件或者整个操作系统。
若要搭载 PXE 网络体系,必须要满足以下条件:
●客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。
●网络中有一台 DHCP 服务器,以便为客户机分配地址、指定引导文件位置。
服务器通过TFTP(Trivial File Transfer Protocol)简单文件传输协议提供引导镜像文件的下载。
一、环境准备
1.1、硬件环境准备
角色 |
主机名/域名 |
IP地址 |
服务 |
备注 |
服务器 |
pxe.yunban.cn |
192.168.2.10/24 |
ftp/tftp/dhcp/pxe/syslinux |
|
客户端 |
|
自动获取 |
|
|
1.2、软件环境准备
软件名称 |
类型 |
版本 |
备注 |
CentOS |
操作系统 |
7.0或以上版本 |
|
vsftp |
应用软件 |
3.0或以上版本 |
|
dhcp |
应用软件 |
4.0或以上版本 |
|
syslinux |
应用软件 |
5.2或以上版本 |
|
tftp-server |
应用软件 |
5.2或以上版本 |
|
1.3、注意事项
1) 为每台服务器安装操作系统,服务器安装CentOS 7.0系统,主机名与设计保持一致;
2) 如果是使用VM安装,则为每台服务器安装好VMware Tools;
3) 为所有服务器主机分配好IP地址,可以选择禁用IPv6,使用IPv4环境(集体实验环境下,网络可以选择连接到VMnet1);
4) 所有服务器均处于局域网中,项目部署全程关闭iptables
二、服务器初始状态准备
1、IP地址配置如下:
2、主机名、防火墙以及selinux状态如下
三、部署FTP服务
1、安装FTP服务,并将安装源复制到/var/ftp/centos7目录下:
[root@pxe ~]# mount /dev/sr0 /media
[root@pxe ~]# yum -y install vsftpd
[root@pxe ~]# rpm -q vsftpd
vsftpd-3.0.2-10.el7.x86_64
[root@pxe ~]# mkdir /var/ftp/centos7
[root@pxe ~]# cp -ar /media/* /var/ftp/centos7/
[root@pxe ~]# du /var/ftp/centos7/
2508 /var/ftp/centos7/EFI/BOOT/fonts
6028 /var/ftp/centos7/EFI/BOOT
6032 /var/ftp/centos7/EFI
85652 /var/ftp/centos7/images/pxeboot
91924 /var/ftp/centos7/images
86028 /var/ftp/centos7/isolinux
286188 /var/ftp/centos7/LiveOS
3832540 /var/ftp/centos7/Packages
13236 /var/ftp/centos7/repodata
4315992 /var/ftp/centos7/
2.启动FTP服务,并设置为开机自启动
[root@pxe ~]# systemctl start vsftpd
[root@pxe ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
四、部署TFTP服务
1、安装TFTP服务
[root@pxe ~]# yum -y install tftp-server
[root@pxe ~]# rpm -q tftp-server
tftp-server-5.2-12.el7.x86_64
2、修改配置文件,开启TFTP服务,默认是关闭的
[root@pxe ~]# vim /etc/xinetd.d/tftp
10 wait = no
14 disable = no
3、启动TFTP服务,并设置为开机自启动。
[root@pxe ~]# systemctl start tftp
[root@pxe ~]# systemctl enable tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
[root@pxe ~]# netstat -anput|grep 69
udp6 0 0 :::69 :::* 1/systemd
五、准备相关文件以及PXE引导程序
1、 准备 Linux 内核、初始化镜像文件
[root@pxe ~]# cd /var/ftp/centos7/isolinux/
[root@pxe isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@pxe isolinux]# ll /var/lib/tftpboot/
总用量 42644
-r--r--r-- 1 root root 38508192 1月 25 23:22 initrd.img
-r-xr-xr-x 1 root root 5156528 1月 25 23:22 vmlinuz
2、准备kickstart配置文件
以本机/root/anaconda-ks.cfg为模板,部署其余服务器的操作系统
[root@pxe isolinux]# cd /root
[root@pxe ~]# cp /root/anaconda-ks.cfg /var/ftp/ks.cfg
[root@pxe ~]# chmod 777 /var/ftp/ks.cfg
[root@pxe ~]# ll /var/ftp/ks.cfg
-rwxrwxrwx 1 root root 955 1月 25 23:26 /var/ftp/ks.cfg
将添加安装源cdrom修改为ftp://192.168.2.21/centos7
[root@pxe ~]# vim /var/ftp/ks.cfg
5 url --url=ftp://192.168.2.10/centos7(指定安装源)
6 #cdrom(第六行注释点)
3、准备 PXE 引导程序、启动菜单文件:
[root@pxe ~]# yum -y install syslinux
[root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@pxe ~]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 vmlinuz
[root@pxe ~]# cp /var/ftp/centos7/isolinux/isolinux.cfg /var/lib/tftpboot/
[root@pxe ~]# chmod 644 /var/lib/tftpboot/isolinux.cfg
[root@pxe ~]# ll /var/lib/tftpboot/
总用量 42676
-r--r--r-- 1 root root 38508192 1月 25 23:22 initrd.img
-rw-r--r-- 1 root root 3032 1月 25 23:33 isolinux.cfg
-rw-r--r-- 1 root root 26771 1月 25 23:32 pxelinux.0
-r-xr-xr-x 1 root root 5156528 1月 25 23:22 vmlinuz
4、创建pxe启动菜单
[root@pxe ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@pxe ~]# mv /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@pxe ~]# ll -R /var/lib/tftpboot/
/var/lib/tftpboot/:
总用量 42672
-r--r--r-- 1 root root 38508192 1月 25 23:22 initrd.img
-rw-r--r-- 1 root root 26771 1月 25 23:32 pxelinux.0
drwxr-xr-x 2 root root 20 1月 25 23:36 pxelinux.cfg
-r-xr-xr-x 1 root root 5156528 1月 25 23:22 vmlinuz
/var/lib/tftpboot/pxelinux.cfg:
总用量 4
-rw-r--r-- 1 root root 3032 1月 25 23:33 default
5、修改pxe启动菜单,指定安装源位置pxe和ks.cfg文件位置:
[root@pxe ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
1 default linux
2 prompt 0
3 timeout 600
65 append initrd=initrd.img inst.repo=ftp://192.168.2.10/centos7 inst.ks=ftp://192.168.2.10/ks.cfg
六、部署DHCP服务
1、安装DHCP服务
[root@pxe ~]# yum -y install dhcp
[root@pxe ~]# rpm -q dhcp
dhcp-4.2.5-42.el7.centos.x86_64
2、修改DHCP配置文件
[root@pxe ~]# cat /usr/share/doc/dhcp*/dhcpd.conf.example > /etc/dhcp/dhcpd.conf
[root@pxe ~]# vim /etc/dhcp/dhcpd.conf
IPv4 DNS设置首选地址为本机地址,并设置默认租约为6小时,最长租约为12小时
7 option domain-name "pxe.yunban.cn";
8 option domain-name-servers 192.168.2.10;
10 default-lease-time 21600;
11 max-lease-time 43200;
创建DHCP的作用域,定义地址池,指定引导文件位置,以及tftp服务地址
27 subnet 192.168.2.0 netmask 255.255.255.0 {
28 range 192.168.2.10 192.168.2.100;
29 next-server 192.168.2.10;
30 filename "pxelinux.0";
31 }
设置主机声明,将本机网卡的MAC地址与IP地址进行绑定
65 host pxe.yunban.cn {
66 hardware ethernet 00:0c:29:08:9b:a5;
67 fixed-address 192.168.2.10;
68 }
启动DHCP服务器
[root@pxe ~]# systemctl start dhcpd
[root@pxe ~]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
七、开启客户端测试
创建客户机:客户机内存需为2G或以上,不然安装的图形窗口弹不出来。
此时客户机获取到ip地址,并加载内核文件、初始化镜像文件。
客户机正在安装系统。
系统安装成功
==========================================================================================
PS:rpm 地址及 epel
http://rpm.pbone.net/
http://rpmfind.net/
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm