目录
5.5将四大文件initrd.img、pxelinux.0、pxelinux.cfg/default(手写) 、vmlinuz复制到/var/lib/tftpboot
一、PXE高效批量网络装机
1、PXE简介
PXE(preboot execute environment)是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统,pxe是通过网卡引导启动。
实现的硬件条件
- BIOS支持
- 网卡支持(现在基本都已支持)
- 需要在bios中开启开关,服务器一般没打开( bmc界面里打开)
- 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置(网卡自带DHCP功能)
- 服务器通过tftp服务(简单文件传输协议使用UDP协议)来提供系统内核和引导镜像的下载(网卡自带tftp服务不支持其他的远程共享服务)
2、PXE优点
- 规模化:同时装配多台服务器
- 自动化:安装系统、配置各种服务
- 远程实现:不需要光盘、u盘等安装介质
3、搭建过程中所使用的服务
- TFTP(简单文件传输协议)∶内核和引导文件
是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合,TFTP服务默认由xinetd服务进行管理,使用UDP69端口
- vsftp
安装系统镜像文件获取方式,提供ftp服务可以使用http ftp等方式,ftp文件传输的一种。
- syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装sysLinux之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统.
- DHCP服务
专门用于为TCP/IP网络中计算机自动分配TCP/IP参数的协议指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
4、PXE实现过程讲解
1.网卡需要查找相关的dhcp服务器(获取地址时间)
2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3.网卡使用tftp客户端把引导程序加载到内存中来
4.bios执行引导程序
5.引导程序会去TFTP去查找配置文件
6.根据配置文件去引导安装系统
5、搭建PXE远程安装服务器
5.1安装TFTP服务
[root@localhost ~]# yum install tftp-server
[root@localhost ~]# rpm -ql tftp-server
[root@localhost ~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = yes
per_source = 11
cps = 100 2
flags = IPv4
}
- 安装tftp-servert提供tftp服务
- 开启tftp服务
5.2安装 vsftp服务挂载软件安装源
[root@localhost ~]# yum install vsftpd -y
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# ls
centos7 pub
[root@localhost ftp]# mount /dev/sr0 centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]# ls centos7/
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
- 安装vsftpd服务
- 挂载安装源( mount /dev/sr0 /var/ftp/centos7)
5.3安装syslinux
[root@localhost ~]# yum install syslinux -y
[root@localhost tftpboot]# rpm -ql syslinux |grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
-
安装syslinux服务,获取pxelinux.0文件
- 查看pxelinux.0文件
5.4安装并启动DHCP服务
[root@localhost ~]# yum install dhcp -y
[root@localhost ~]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
[root@localhost ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.192.0 netmask 255.255.255.0 {
range 192.168.192.10 192.168.192.50;
option routers 192.168.192.100;
next-server 192.168.192.100;
filename"pxelinux.0";
}
- 安装dhcp
- 将虚拟机Linux设置成仅主机模式,同时进入虚拟网络编辑器点击右下角更改设置,选择仅主机类型,将使用本地DHCP服务那一行勾掉,记住仅主机模式下的网段地址点击确定,此处的网段应该与真机VMnet1的网段设置为同一网段
- 检查真机中VMnet1中的网段
- 进入VMware虚拟机,打开终端进入网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens3,配置完成后保存退出
- 重启服务,查看是否配置成功
- 复制配置文件
- 编辑配置文件
5.5将四大文件initrd.img、pxelinux.0、pxelinux.cfg/default(手写) 、vmlinuz复制到/var/lib/tftpboot
- 将挂载到var/ftp/centos7下的initrd.img(初始化镜像文件)、vmlinuz(内核文件)复制到/var/lib/tftpboot
[root@localhost ftp]# cd /var/ftp/centos7/
[root@localhost centos7]# ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@localhost centos7]# cd images/
[root@localhost images]# ls
efiboot.img pxeboot TRANS.TBL
[root@localhost images]# cd pxeboot/
[root@localhost pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot
[root@localhost pxeboot]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img vmlinuz
- 将syslinux中的pxelinux.0(PXE引导程序文件)复制到/var/lib/tftpboot
[root@localhost tftpboot]# rpm -ql syslinux |grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 vmlinuz
- 手写pxelinux.cfg/default、vmlinuz到/var/lib/tftpboot
[root@localhost ~]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# ls
[root@localhost pxelinux.cfg]# vim default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.192.100/centos7
label linux text
kernel vmlinuz
append text initrd =initrd.img method=ftp://192.168.192.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.192.100/centos7
5.6关闭防火墙并开启服务
5.7新建一台仅主机模式的虚拟机作为客户机,客户端要求内存最少 2G
安装成功
继续下一步就可以直接安装,但是如果使用kick start则可以实现无人值守安装
二、使用Kickstart无人值守安装以字符界面为例
由于为仅主机模式下载服务需要搭建本地的yum仓库
1、搭建yum仓库
- 查看光盘挂载位置
- 新建仓库
- 清除缓存
2、安装kickstart图形化工具
3、进入服务端配置kickstart
点击应用程序点击系统工具继续点击kickstart