目录
7.新建一台仅主机模式的虚拟机作为客户机,客户端要求内存最少 2G
2.进入服务端配置kickstart(注意Xshell不打不开)
7.重启上个实验中新安装的虚拟机或者新建一个仅主机模式的虚拟机进行验证
一.PXE的介绍
PXE(preboot execute environment)是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。工作在Client/Server模式(也简称CS模式),允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统,pxe是通过网卡引导启动。
1.搭建PXE网络体系的硬件条件
- BIOS支持
- 网卡支持(现在基本都已支持)
- 需要在bios中开启开关,服务器一般没打开( bmc界面里打开)
- 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置(网卡自带DHCP功能)
- 服务器通过tftp服务(简单文件传输协议使用UDP协议)来提供系统内核和引导镜像的下载(网卡自带tftp服务不支持其他的远程共享服务)
2.PXE服务的优点
- 规模化:同时装配多台服务器,无需每一台单独安装操作系统;
- 自动化:实现服务器的自动安装及自动配置各种服务;
- 远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。
3.PXE搭建过程中所使用的服务
3.1 TFTP(简单文件传输协议)∶内核和引导文件
是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合,TFTP服务默认由xinetd服务进行管理,使用UDP69端口
3.2 vsftp
安装系统镜像文件获取方式,提供ftp服务可以使用http ftp等方式,ftp文件传输的一种。
3.3 syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装sysLinux之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统.
3.4 DHCP服务
专门用于为TCP/IP网络中计算机自动分配TCP/IP参数的协议指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
二.PXE的实验过程
1.网卡需要查找相关的dhcp服务器(获取地址时间)
2.找到后dhcp服务器提供ip地址和引导程序(boot loader)的地址,还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3.网卡使用tftp客户端把引导程序加载到内存中
4.bios执行引导程序
5.引导程序会去TFTP去查找配置文件
6.根据配置文件去引导安装系统
7.系统安装
三.实验:搭建PXE远程安装服务器
1.安装并开启TFTP服务
[root@Zhuzi ~]# yum install tftp-server -y
[root@Zhuzi ~]# rpm -ql tftp-server
[root@Zhuzi ~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp #TFTP默认使用的UDP协议
wait = yes #yes:客户机单台连接,no:多台连接
user = root
server = /usr/sbin/in.tftpd #指定TFTP目录(引导文件的存储路径)
server_args = -s /var/lib/tftpboot
disable = no #no:表示开启TFTP服务
per_source = 11
cps = 100 2
flags = IPv4
}
2.安装 vsftp服务挂载软件安装源
[root@Zhuzi ~]# yum install vsftpd -y
[root@Zhuzi ~]# cd /var/ftp
[root@Zhuzi ftp]# mkdir centos7
[root@Zhuzi ftp]# ls
centos7 pub
[root@Zhuzi ftp]# mount /dev/sr0 centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@Zhuzi 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
3.安装syslinux服务,获取pxelinux.0文件
[root@Zhuzi ~]# yum install syslinux -y
[root@Zhuzi ~]# rpm -ql syslinux |grep pxelinux.0
4.安装并启动DHCP服务(注意详细步骤)
[root@Zhuzi ~]# yum install dhcp -y
[root@Zhuzi ~]# cat /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
[root@Zhuzi ~]# 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
详细修改见下图
4.1 安装DHCP服务
4.2 将虚拟机Linux设置成仅主机模式,同时进入虚拟网络编辑器点击右下角更改设置,选择仅主机类型,将使用本地DHCP服务那一行勾掉,记住仅主机模式下的网段地址点击确定,此处的网段应该与真机VMnet1的网段设置为同一网段
4.3 检查真机中VMnet1中的网段
4.4 进入虚拟机,打开终端进入网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens3,配置完成后保存退出
4.5 重启服务,查看是否配置成功
4.6 (这里重连了Xshell)复制配置文件
4.7 编辑配置文件
5.将四大文件initrd.img、pxelinux.0、pxelinux.cfg/default(手写) 、vmlinuz复制到/var/lib/tftpboot
5.1 将挂载到var/ftp/centos7下的initrd.img(初始化镜像文件)、vmlinuz(内核文件)复制到/var/lib/tftpboot
[root@Zhuzi ftp]# cd /var/ftp/centos7/
[root@Zhuzi 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@Zhuzi centos7]# cd images/
[root@Zhuzi images]# ls
efiboot.img pxeboot TRANS.TBL
[root@Zhuzi images]# cd pxeboot/
[root@Zhuzi pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
[root@Zhuzi pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot
[root@Zhuzi pxeboot]# cd /var/lib/tftpboot/
[root@Zhuzi tftpboot]# ls
initrd.img vmlinuz
5.2 将syslinux中的pxelinux.0(PXE引导程序文件)复制到/var/lib/tftpboot
[root@Zhuzi tftpboot]# rpm -ql syslinux |grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@Zhuzi tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@Zhuzi tftpboot]# ls
initrd.img pxelinux.0 vmlinuz
5.3 手写pxelinux.cfg/default、vmlinuz到/var/lib/tftpboot
[root@Zhuzi ~]# cd /var/lib/tftpboot/
[root@Zhuzi tftpboot]# mkdir pxelinux.cfg
[root@Zhuzi tftpboot]# cd pxelinux.cfg/
[root@Zhuzi pxelinux.cfg]# ls
[root@Zhuzi 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
6.关闭防火墙并开启服务
7.新建一台仅主机模式的虚拟机作为客户机,客户端要求内存最少 2G
注意:可以全部修改完再确定!
8.安装成功,继续下一步就可以直接安装,但是如果使用kickstart则可以实现无人值守安装。
四.实验:实现Kickstart无人值守安装
由于为仅主机模式下载服务需要搭建本地的yum仓库,此处不再过多赘述过程直接默认有本地yum仓库继续实验
1.安装kickstart图形化工具
2.进入服务端配置kickstart(注意Xshell不打不开)
打开终端输入命令
system-config-kickstart
跳出以下界面
3.进行配置(按需设置,此处为我的设置
3.1 基本配置
3.2 安装方法
3.3 引导装载程序选项
3.4 分区信息(重复点击“添加”手动分区)
3.5 网络配置
3.6 防火墙配置
3.7 显示配置
3.8 安装后脚本
4.回到服务器终端查看是否保存成功ks.cfg文件
5.进入default文件,添加参数
6.重启服务
7.重启上个实验中新安装的虚拟机或者新建一个仅主机模式的虚拟机进行验证
测试是否可以自动配置时间、语言、分区等信息,如下图自动配置即代表完成