说明
我们一般默认安装ESXi 都是通过cd或者u盘之类的介质进行安装ESXi系统,不过如果我们的环境新到一大批服务器并且需要在规定的时间内完成系统的部署,那么一台台部署显然是不可能的,所以我们就使用PXE来进行快速的部署,
部署PXE可以使用Windows或者Linux,我这里就使用Windows来部署。我们分为几部,先安装一台Windows系统,然后再Windows系统上安装一个IIS服务,里面配置好ks.cfg的安装配置文件,然后再下载个tftp32的软件,网上一大批,由tftp来提供dhcp和pxe的文件进行安装。
PXE引导安装过程
ESXi 主机与其他服务器之间的交互按如下所示进行:
- 用户引导目标 ESXi 主机。
- 目标 ESXi 主机生成 DHCP 请求。
- DHCP 服务器以 TFTP 服务器的 IP 信息和位置作为响应。
- ESXi 主机联系 TFTP 服务器,并请求 DHCP 服务器指定的文件。
- TFTP 服务器发送网络引导加载程序,然后 ESXi 主机执行该程序。初始引导加载程序可能从 TFTP 服务器加载更多引导加载程序组件。
- 引导加载程序在 TFTP 服务器上搜索配置文件,从 HTTP 服务器或 TFTP 服务器下载内核和其他 ESXi 组件,并在 ESXi 主机上引导内核。
- 安装程序以交互方式或者使用 kickstart 脚本运行,如配置文件中所指定。
准备工作
软件准备
1.下载TFTP server
windows下绿色免安装非常好用的TFTP服务器,网上搜一大堆
2.下载ESXI6.5的ISO文件
注:如果百度会看到有药syslinux文件,那个是给老BIOS使用的,我们这个是UEFI实验,所以不需要。
系统准备
因为测试环境,所以单独搞了个只要主机的VMnet2即可,和PXE同一个网段
用于PXE的VMware选择UEFI BIOS。
配置PXE
- 在C盘创建tftpboot目录
-
将ESXi 6.5 安装文件 efi/boot/bootx64.efi 从 ESXi 安装程序 ISO 映像复制到 TFTP 服务器的 /tftpboot/目录下并重命名为mboot.efi。
注:新版本的 mboot.efi 通常可以引导旧版本的 ESXi,但旧版本的 mboot.efi 可能无法引导新版本的 ESXi。如果您计划配置不同的主机以引导不同版本的 ESXi 安装程序,请使用最新版本中的 mboot.efi。
-
创建 TFTP 服务器顶级 /tftpboot 目录的子目录,并以其将保存的 ESXi 版本命名,例如 /tftpboot/ESXi-6.x.x-xxxxx。
-
将 ESXi 安装程序映像的内容复制到刚创建的目录中。
-
修改 ESXi这个目录安装程序中的boot.cfg 文件
添加以下行:
prefix=ESXi-6.x.x-xxxxxx
其中,ESXi-6.x.x-xxxxxx 是安装程序文件相对于 TFTP 服务器 root 目录的路径名称。
-
对于脚本式安装,在 boot.cfg 文件中内核命令后的一行添加 kernelopt 选项以指定安装脚本的位置。
将以下代码用作模型,其中 XXX.XXX.XXX.XXX 是安装脚本所在的服务器的 IP 地址,esxi_ksFiles 是包含 ks.cfg 文件的目录。
kernelopt=ks=http://XXX.XXX.XXX.XXX/esxi_ksFiles/ks.cfg
- 如果 kernel= 和 modules= 行中的文件名以正斜杠 (/) 字符开头,请删除该字符。
请按照我的次序来写配置文件,否则可能出错,我试了好久
- (仅限 UEFI)指定是否希望所有 UEFI 主机都引导同一安装程序。(我这里就同一程序了)
-
同一安装程序 将 boot.cfg 文件复制或链接到 /tftpboot/boot.cfg
-
不同安装程序
- 创建 /tftpboot 的子目录,并以目标主机的 MAC 地址 (01-mac_address_of_target_ESXi_host) 命名,例如 01-23-45-67-89-0a-bc。
- 将主机 boot.cfg 文件的副本(或链接)置于此目录中,例如 /tftpboot/01-23-45-67-89-0a-bc/boot.cfg。
添加防火墙端口
UDP 69
netsh advfirewall firewall add rule name=”TFTP” protocol=UDP dir=in localport=69 action=allow
配置安装脚本
安装IIS
安装完成能打开127.0.0.1代表安装完成
配置安装脚本
在C:\inetpub\wwwroot目录下新建esxi_ksFiles文件夹
在esxi_ksFiles中创建一个初始的ks.cfg文件
我们修改下脚本,修改成自己要的,请去掉中文的注释,否则安装会报错,并且字母都是小写
配置IIS
这时我们打开浏览器会发现有报错
我们需要打开IIS管理器,点击MIME类型
添加cfg扩展名
添加完成
这时我们在打开网页,可以看到已经可以下载此文件了
启动Tftp32
配置TFTP
我们打开后配置下DHCP
开始安装ESXi
全部都好了,我们开始安装测试吧。
这时我们查看Tftp会发现下面在进行传输
开始安装了
安装完成重启,重启会自动进行不需要干预
安装完成
重启后系统全部安装完成
登陆主机,可以看到许可都在,至此PXE安装全部完成。
Ps:在我的测试环境中发现Tftp32运行不太稳定,不知道是不是兼容性的问题,大家有时间可以测试下用tftp64来进行安装,2个软件是一样的,只是一个是32位程序一个是64位程序。
如果还不稳定,那只能换其他软件或者linux来进行pxe,我因为linux玩不太来,所以都是用Windows来进行实验。