一、项目需求:
近期因项目需要准备部署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服务器实现此功能。
三、前提条件:
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服务器的安装,这里我们略过安装过程主要说一下关键点。
2、右击选择“配置服务器”
3、安装目录E:\RemoteInstall
4、勾选以下两项,点击“下一步”至到完成配置。
5、这时候我们在DHCP的作用域选项里面可以看到自动添加了对应的PXEClient
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文件等,可以配置此文件)
7、分别修改以下文件的名称:
Pxeboot.n12文件名修改为:pxeboot.0
Pexlinux.0文件名修改为:pxelinux.com
Abortpxe.com文件名修改为:abortpxe.0
8、在x86与x64目录下分别新建pxelinux.cfg目录,然后新建default与graphics.conf文件。其中Defalut是菜单文件,graphics.conf是窗口配置文件(可以不用)
【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目录下
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
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端口通过的。
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引导
16、这时候我们可以看到一个菜单,这就是我们刚刚开始的时候设置的菜单,选择“Auto Install ESXi”
17、这时候我们可以看到系统开始安装了....
18、安装完成,我们来检查一下,刚开始我们对应的配置的IP地址,网关等是否正确。这里我们可以看到对应的IP为静态,并已经设置了主机名。
19、另外我们在Ks.cfg脚本里面有开启ESXi Shell和SSH,如下图所示也已经开启。说明全自动安装已经正确配置了。至此我们即完成了对于ESXi的全自动安装。
说明:当然这并非已经完全的全自动安装,完全的全自动安装是在安装之前直接自动添加ESXi主机到对应的集群里面去,我们可以通过修改ks.cfg文件来实现此功能。