一、项目需求:

近期因项目需要准备部署100台ESXI主机,可是存在一个问题,这100台主机分别位于不同城市之间,包括上海、广州、重庆、北京等,如果去到现场进行安装,非常的费力费时,根本不可能在一个星期内完成此项目需求,这将影响整个项目的进度安排。为此对客户的网络环境进行了分析,公司总部与其它分公司之前采用10M专线进行连接,这对我来说是一件很让我兴奋的消息,我们可以通过PXE实现ESXI的全自动安装,按照一台机大约25分钟的时候计算,并行进行5台机的部署,25*(100/5)=500分钟即可完成整套系统的部署了,经过了解客户公司有WDS服务器,于是想在WDS服务器的基础上实现对于ESXI的全自动部署。通过全局的了解与分析,开始整体规划与部署。

二、原理结构:

通过下图我们可以基础的了解一下关于WDS实现ESXI自动化部署的基础原理。从下图我们可以看出,在这里需要一台DHCP服务器,主要用于给ESXI主机网卡分配IP地址,另外需要一台TFTP服务器,主要用于做PXELINUX.0的引导工作,再有需要一台FTP服务器用于下发自动发部署脚本,当然也可以采用下图所示WEB服务器实现此功能。

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第1张图片

三、前提条件:

1、下载syslinux文件,下载地址:

https://www.kernel.org/pub/linux/utils/boot/syslinux/4.xx/syslinux-4.07.zip

2、配置DHCP服务器一台(用于IP下发)

3、配置FTP服务器(用于脚本下发)

4、配置WDS服务器1台(用于PXELINUX.0引导)

四、配置步骤:

1、DHCP与WDS服务器的安装,这里我们略过安装过程主要说一下关键点。

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第2张图片

2、右击选择“配置服务器”

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第3张图片

3、安装目录E:\RemoteInstall

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第4张图片

4、勾选以下两项,点击“下一步”至到完成配置。

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第5张图片

5、这时候我们在DHCP的作用域选项里面可以看到自动添加了对应的PXEClient

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第6张图片

6、将下载的syslinux解压将下面的文件分别复制到boot目录下的x86与x64目录里面

core\pxelinux.0 (功能:PXE引导文件)

com32\menu\vesamenu.c32(功能:二级窗口模块)

com32\menu\menu.c32(功能:主窗口模块)

com32\chain\chain.c32(功能:指定分区启动)

memdisk\memdisk (功能:引导IMG镜像的文件,此处可以不用,如果你要采用这种方式启动于DOS.IMG文件等,可以配置此文件)

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第7张图片

7、分别修改以下文件的名称:

Pxeboot.n12文件名修改为:pxeboot.0

Pexlinux.0文件名修改为:pxelinux.com

Abortpxe.com文件名修改为:abortpxe.0

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第8张图片

8、在x86与x64目录下分别新建pxelinux.cfg目录,然后新建default与graphics.conf文件。其中Defalut是菜单文件,graphics.conf是窗口配置文件(可以不用)

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第9张图片

【default】文件内容

# 默认用户引导选项

DEFAULT menu.c32  //默认菜单

TIMEOUT 100  //菜单停留时间,计时单位1/10秒

# Prompt user for selection

PROMPT 0

#菜单窗口配置

MENU WIDTH 80

MENU MARGIN 10

MENU PASSWORDMARGIN 3

MENU ROWS 12

MENU TABMSGROW 18

MENU CMDLINEROW 18

MENU ENDROW 24

MENU PASSWORDROW 11

MENU TIMEOUTROW 20

MENU TITLE Main Menu

#启动菜单配置

#手动安装ESXI

LABEL Install ESXi manualy

MENU LABEL Install ESXi manualy

KERNEL /esxi/mboot.c32

APPEND -c /esxi/boot.cfg

#自动安装ESXI

LABEL Auto Install ESXi

MENU LABEL Auto Install ESXi

KERNEL esxi/mboot.c32

APPEND -c esxi/boot.cfg ks=ftp://192.168.1.204/ks.cfg  //此处为脚本所有位置

IPAPPEND 1

【graphics.conf】文件内容

MENU COLOR sel 7;37;44 #ff0030a5 #ff94c3f7 none

MENU COLOR unsel 34;47 #ff0030a5 #ffffffff none

MENU COLOR border 37;47 #ffd3d6e7 #ffd3d6e7 none

MENU COLOR title 37;47 #ff0030a5 #ffd3d6e7 none

MENU COLOR timeout 1;37;44 #ffffffff #00000000 none

MENU TABMSG

MENU AUTOBOOT #

MENU WIDTH 50

MENU MARGIN 1

MENU ROWS 10

MENU TABMSGROW 23

MENU CMDLINEROW 23

MENU ENDROW 24

MENU TIMEOUTROW 16

MENU HSHIFT 16

MENU VSHIFT 8

ONTIMEOUT hdd

ALLOWOPTIONS 1

9、将ESXI文件解压,整体目录放入x64目录下

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第10张图片

10、修改ESXI目录下的BOOT.CFG文件内容如下:(注意:将所有“/”替换为空)

bootstate=0

title=Auto Installer ESXi

prefix=/esxi/ 这里我们可以指文件放于FTP服务器,然后指向FTP服务器目录

kernel=tboot.b00

kernelopt=runweasel

modules=b.b00 --- jumpstrt.gz --- useropts.gz --- k.b00 --- chardevs.b00 --- a.b00 --- user.b00 --- sb.v00 --- s.v00 --- ata_pata.v00 --- ata_pata.v01 --- ata_pata.v02 --- ata_pata.v03 --- ata_pata.v04 --- ata_pata.v05 --- ata_pata.v06 --- ata_pata.v07 --- block_cc.v00 --- ehci_ehc.v00 --- elxnet.v00 --- weaselin.t00 --- esx_dvfi.v00 --- xlibs.v00 --- ima_qla4.v00 --- ipmi_ipm.v00 --- ipmi_ipm.v01 --- ipmi_ipm.v02 --- lpfc.v00 --- lsi_mr3.v00 --- lsi_msgp.v00 --- misc_cni.v00 --- misc_dri.v00 --- mtip32xx.v00 --- net_be2n.v00 --- net_bnx2.v00 --- net_bnx2.v01 --- net_cnic.v00 --- net_e100.v00 --- net_e100.v01 --- net_enic.v00 --- net_forc.v00 --- net_igb.v00 --- net_ixgb.v00 --- net_mlx4.v00 --- net_mlx4.v01 --- net_nx_n.v00 --- net_tg3.v00 --- net_vmxn.v00 --- ohci_usb.v00 --- qlnative.v00 --- rste.v00 --- sata_ahc.v00 --- sata_ata.v00 --- sata_sat.v00 --- sata_sat.v01 --- sata_sat.v02 --- sata_sat.v03 --- sata_sat.v04 --- scsi_aac.v00 --- scsi_adp.v00 --- scsi_aic.v00 --- scsi_bnx.v00 --- scsi_bnx.v01 --- scsi_fni.v00 --- scsi_hps.v00 --- scsi_ips.v00 --- scsi_lpf.v00 --- scsi_meg.v00 --- scsi_meg.v01 --- scsi_meg.v02 --- scsi_mpt.v00 --- scsi_mpt.v01 --- scsi_mpt.v02 --- scsi_qla.v00 --- scsi_qla.v01 --- uhci_usb.v00 --- tools.t00 --- xorg.v00 --- imgdb.tgz --- imgpayld.tgz

build=

updated=0

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第11张图片

11、ESXI下ks.cfg文件配置

#Sample kickstart scripted installation

vmaccepteula  //接受的最终用户许可协议

rootpw www.lidongni.com //管理员密码

clearpart --firstdisk --overwritevmfs  //安装到硬盘

install --firstdisk --overwritevmfs //指定安装介质

network --bootproto=dhcp --device=vmnic0  //配置为网卡为DHCP

network --bootproto=static --device=vmnic0 --ip=192.168.1.40 --netmask=255.255.255.0 --gateway=192.168.1.1 --hostname=VDI01 --nameserver=192.168.1.203 --addvmportgroup=0 //配置静态IP地址

reboot  //重启

%firstboot –interpreter=busybox

# 启用SSH

vim-cmd hostsvc/enable_ssh

vim-cmd hostsvc/start_ssh

#启动SHELL

vim-cmd hostsvc/enable_esx_shell

vim-cmd hostsvc/start_esx_shell

这仅仅只是一个基础的脚本,如果你需要更多的了解,可以参考下面的链接:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2004582

12、配置FTP的访问目录为E:\Linux并将ks.cfg文件放于此目录,这里我们用一个简单的FTP工具,因为只是发送一个ks.cfg文件,确保你的防火墙是允许21端口通过的。

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第12张图片

13、添加WDS从Pxelinux引导

Wdsutil /set-server /bootprogram:boot\x86\pxelinux.0 /architecture:x86

Wdsutil /set-server /bootprogram:boot\x64\pxelinux.0 /architecture:x64

Wdsutil /set-server /n12bootprogram:boot\x86\pxelinux.com /architecture:x86

Wdsutil /set-server /n12bootprogram:boot\x64\pxelinux.com /architecture:x64

14、重启WDS服务

15、启动ESXI服务器,这时候网卡会自动从DHCP服务器192.168.1.204获取IP地址,然后我们按F12从PXE引导

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第13张图片

16、这时候我们可以看到一个菜单,这就是我们刚刚开始的时候设置的菜单,选择“Auto Install ESXi”

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第14张图片

17、这时候我们可以看到系统开始安装了....

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第15张图片

18、安装完成,我们来检查一下,刚开始我们对应的配置的IP地址,网关等是否正确。这里我们可以看到对应的IP为静态,并已经设置了主机名。

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第16张图片

19、另外我们在Ks.cfg脚本里面有开启ESXi Shell和SSH,如下图所示也已经开启。说明全自动安装已经正确配置了。至此我们即完成了对于ESXi的全自动安装。

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第17张图片

【VMware虚拟化解决方案】 基于Win2012 R2 WDS下ESXI全自动部署解决方案_第18张图片

说明:当然这并非已经完全的全自动安装,完全的全自动安装是在安装之前直接自动添加ESXi主机到对应的集群里面去,我们可以通过修改ks.cfg文件来实现此功能。