Day16 PXE批量装机环境(Services05)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day16 PXE批量装机环境(Services05)相关的知识,希望对你有一定的参考价值。
一、批量装机概述1.1 PXE
PXE(Preboot Execution Environment)预启动环境,在操作系统之前运行
1.1.1 PXE工作模式
PXE Client集成在网卡的启动芯片中,当计算机引导时,从网卡芯片中把PXE Client调入内存,获取PXE Server配置、显示菜单,根据用户的选择将引导程序下载到本机运行
1.2 PXE组件及过程引导
1.2.1 需要哪些服务组件
DHCP:分配IP地址,指定引导程序
TFTP:提供引导程序下载。特点:不需要用户名和密码
FTP/HTTP/NFS:提供yum安装源
1.2.2客户端获取IP地址直到获取yum源的过程:
a.客户端通过DHCP四个过程获取IP地址,同时得到TFTP服务器的地址
b.客户端联系TFTP,下载装机用的文件(内核vmlinuz、初始化文件initrd.img、网卡启动程序pxelinux.0)
vmlinux、initrd.img在安装光盘的/images/pxeboot/下
pxelinux.0要安装syslinux包
c.客户端运行pxelinux.0,调用图形支持模块vesamenu.c32、背景图片splash.png、菜单配置文件pxelinux.cfg/default
vesamenu.c32、splash.png、default在安装光盘的/isolinux/下
d.通过FTP/HTTP/NFS提供的yum源,就可以开始安装系统了
二、部署DHCP服务器
2.1 概述及原理
DHCP地址的四次会话:Discovery—Offer—Request—Acknowledge
租期:允许客户机租用IP地址的时间期限,单位为秒
作用域:分配给客户机的IP地址所在网段
地址池:用来分配给客户机的IP地址的范围
端口:67/udp(服务器)、68/udp(客户端)
2.2 搭建dhcp服务器
2.2.1 yum -y install dhcp
安装dhcp包
2.2.2 /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
dhcpd.conf的模板文件
2.2.3 /etc/dhcp/dhcpd.conf
dhcp服务的主配置文件
2.2.4 修改主配置文件
vim /etc/dhcp/dhcpd.conf
修改相应区域
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option domain-name-servers 8.8.8.8;
option routers 192.168.4.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.7;
filename "pxelinux.0";
}
2.2.5 systemctl restart dhcpd systemctl enable dcpd
重启服务并设置开机启动
2.2.6 dhclient -d eth0
用调试命令对eth0进行dhcp客户端测试
dhclient -d eth0
nternet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/74:52:08:05:08:01
Sending on LPF/eth0/74:52:08:05:08:01
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4 (xid=0x454b0f80)
DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x454b0f80)
DHCPOFFER from 192.168.4.7
DHCPACK from 192.168.4.7 (xid=0x454b0f80)
bound to 192.168.4.100 -- renewal in 232 seconds.
三、部署TFTP服务
3.1 概述
TFTP(Trival File Transfer Protocol)简单文件传输协议
端口:69/udp
服务端程序:tftp-server
系统服务:tftp
3.2 yum -y install tftp-server
安装服务端安装包
3.3 systemctl restart tftp && systemctl enable tftp
启动服务及设置开机启动
3.4 /var/lib/tftpboot
tftp服务器的根目录,所有文件都要放在该目录下
3.5 yum provides */pxelinux.0
pxelinux.0就是网卡引导程序,我们可以利用yum数据库查询pxelinux.0文件是在哪个包里面,查询到在syslinux.x86_64里面
3.6 yum -y install syslinux
安装syslinux软件包
3.7 rpm -ql syslinux-4.05-12.el7.x86_64 |grep pxelinux.0
查询pxelinux.0安装到哪个目录去了
3.8 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
拷贝pxelinux.0到tftp服务器的根目录
3.9 mkdir /var/lib/tftpboot/pxelinux.cfg
创建default文件所在的目录。菜单配置文件default必须放在这里
3.10 wget http://192.168.4.254/rhel7/isolinux/isolinux.cfg -O /var/lib/tftpboot/pxelinux.cfg/default
拷贝菜单文件到指定目录pxelinux.cfg/,并且命名为default,同时要保证文件权限必须是644
3.11 wget http://192.168.4.254/rhel7/isolinux/vesamenu.c32 /var/lib/tftpboot/
拷贝图形模块文件vesamenu.c32
3.12 修改默认菜单文件default
修改及注释
default vesamenu.c32#默认图形模块为vesamenu.c32
timeout 600#等待60秒
......
display boot.msg
......
menu title NSD1709 PXE Server !#显示给用户的启动菜单
......
label linux
menu label ^Install Red Hat Enterprise Linux 7.2#^表示键盘上的快捷键,显示给用户的菜单选项
kernel vmlinuz#内核程序
append initrd=initrd.img#启动内核需要这个驱动程序
label local#从硬盘启动
menu default#默认启动方式
menu label Boot from ^local drive
localboot 0xffff
3.13 wget http://192.168.4.254/rhel7/isolinux/vmlinuz /var/lib/tftpboot/
拷贝内核程序到tftp根目录
3.14 wget http://192.168.4.254/rhel7/isolinux/initrd.img /var/lib/tftpboot/
拷贝驱动程序到tftp根目录
四、部署FTP服务
yum -y install vsftpd
systemctl enable vsftpd && systemctl restart vsftpd
mkdir /var/ftp/rhel7
mount /dev/cdrom /var/ftp/rhel7
firefox ftp://192.168.4.7/rhel7
五、生成应答文件实现无人值守安装
5.1 yum -y install system-config-kickstart
安装能生成应答文件的软件包
5.2 运行system-config-kickstart
图形设置生成应答文件,保存为/root/ks.cfg
注意!在选择软件包信息的时候会出现“下载软件包信息失败”等错误信息,这是一个bug。bug解决方法:把yum源文件的[name]修改为[development]
5.3 cp /root/ks.cfg /var/ftp/
拷贝应答文件到ftp的根目录下
5.4 修改tftp的默认菜单文件
vim /var/lib/tftpbook/pxelinux.cfg/default
到最后一行增加下面的蓝色字体部分,来指定应答文件的路径
append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg
以上是关于Day16 PXE批量装机环境(Services05)的主要内容,如果未能解决你的问题,请参考以下文章