1.PXE概述
- PXE即预启动环境,在操作系统之前运行;
- PXE是由Inter公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器-- - 下载引导镜像,并加载安装文件或者整个操作系统。
1.1 PXE批量部署的优点
1,规模化:同时装配多台服务器;
2.自动化:安装系统、配置各种服务;
3.远程实现:不需要光盘、U盘等安装介质
1.2 搭建PXE网络体系的前提条件
- 客户机:网卡支持PXE协议,且主板支持网络 引导;
- 服务器:网络中有一台DHCP服务器,用来分配地址、定位引导程序;服务器通过TFTP提供引导镜像文件的下载。
2.配置PXE
1.配置yum源,配置dhcp服务 客户端开机后没有IP,请求服务端,dhcp服务器分配给客户端IP,之前的章节都有关于yum源以及dhcp的章节,这里不再做解释。
2.systemctl stop firewalld.service 关闭火墙,防止客户端访问不到服务器的文件`
3.yum install syslinux tftp-server -y 安装tftp-server提供tftp服务,为pxe客户端提供文件。安装syslinux是为了使用pxelinux.0文件。
[root@pxe ~]# systemctl stop firewalld.service
[root@pxe ~]# yum install syslinux tftp-server.x86_64 -y
4.cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 把pxelinux.0通过tftp共享出来,以便客户端可以读取此文件,pxelinux.0引导文件引导vmlinux和initrd两个启动文件。
5.vim /etc/xinetd.d/tftp 将disable设置为no,允许tftp服务开启 xinetd是tftp的守护文件 要开启tftp服务,需要xinetd同意,rhel7.0之后的版本可以直接重启tftp服务,rhel7.0之前的版本需要先设置xinetd然后重启xinetd服务。
6.systemctl restart xinetd.service 重启xinetd服务。可以通过chkconfig命令查看tftp是否开启
7.vim /etc/dhcp/dhcpd.conf 修改dhcp的配置文件,因为客户端需要通过dhcp服务将服务器的pxelinux.0共享来读取这个文件
subnet 172.25.254.0 netmask 255.255.255.0 {
range 172.25.254.60 172.25.254.80;
option routers 172.25.254.108;
next-server 172.25.254.108; tftp所在的服务器的IP
filename “pxelinux.0”; 共享文件的名称
}
8.systemctl restart dhcpd.service
[root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@pxe ~]# vim /etc/xinetd.d/tftp
[root@pxe ~]# systemctl restart xinetd.service
[root@pxe ~]# vim /etc/dhcp/dhcpd.conf
[root@pxe ~]# tail -n 5 /etc/dhcp/dhcpd.conf
range 192.168.1.50 192.168.1.80;
option routers 192.168.1.120;
next-server 192.168.1.120;
filename "pxelinux.0";
}
[root@pxe ~]# systemctl restart dhcpd.service
9.将真实主机的镜像挂载到/mnt下,为了后面拷文件
[root@foundation75 Desktop]# mount rhel-server-7.3-x86_64-dvd.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only
[root@foundation75 Desktop]# df
Filesystem 1K-blocks Used Available Use% Mounted on
.......... ......................................
/dev/loop0 3704296 3704296 0 100% /mnt
[root@foundation75 Desktop]# cd /mnt
[root@foundation75 mnt]# ls
addons EULA images LiveOS Packages repodata RPM-GPG-KEY-redhat-release
EFI GPL isolinux media.repo release-notes RPM-GPG-KEY-redhat-beta TRANS.TBL
[root@foundation75 mnt]# cd isolinux/ 这个目录下的文件都是需要用到的
[root@foundation75 isolinux]# ls
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vesamenu.c32
boot.msg initrd.img isolinux.cfg splash.png upgrade.img vmlinuz
10.配置启动菜单文件:
包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为default,应放置在tftp根目录的“pxelinux.cfg”子目录下,典型的启动菜单可参考以下操作手动建立
[root@localhost~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto ##默认图形化安装
prompt 1 ##需要用户选择
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.7.100/pub
label linux text ##进入文本模式安装
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.7.100/pub
label linux rescue ##进入救援模式
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.7.100/pub
3.kickstart无人值守
在图形化界面并不能完全配置好,因此,还需要修改ks.cfg文件
11 timezone Asia/Shanghai
38 %packages
39 @base 基础软件包
40 @core 核心软件
41 @fonts 字形字体
42 @gnome-desktop 桌面
43 @input-methods 输入法
44 @x11
45 vnc vnc
46 lftp lftp服务
47 %end
48
49 %post
50 cat > /etc/yum.repo.d/yum.repo << EOF
配置完kickstart之后当然还需要将kickstart和PXE联系起来
[root@pxe html]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@pxe pxelinux.cfg]# ls
default
[root@pxe pxelinux.cfg]# vim default