尝试PXE安装ESXi5.0update1试用

Posted on 2012-08-16 16:33  陈云飞  阅读(1565)  评论(2)    收藏  举报

无意发现现在的VMware ESXi Server开始支持多种安装方式,感觉很好奇,感叹可以不用光驱和显示器也能安装这样的软件了,因此下载了最新的ESXi5.0update1来尝试一下。

http://pubs.vmware.com/vsphere-50/index.jsp?lang=en 看,ESXi还可通过USB和PXE引导安装,同时基于Redhat系统提供的Kickstart,我们可以写自动安装脚本了。

实验步骤如下:

1、先找一个Linux系统作为提供PXE安装服务的系统,物理机或虚拟机都行,在此我使用Gentoo系统。

2、在该Linux系统上安装dhcpd服务,用于给裸机的PXE启动分配IP,在此我安装的是isc-dhcpd-4.2.4-P1,dhcpd文件配置如下:

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

default-lease-time 600;
max-lease-time 7200;


ddns-update-style none;


option subnet-mask 255.255.255.0;
option broadcast-address 192.168.200.255;
option routers 192.168.200.1;
option domain-name-servers 192.168.0.1;

subnet 192.168.200.0 netmask 255.255.255.0 {
    range 192.168.200.10 192.168.200.15;
    filename "pxelinux.0";
    next-server 192.168.200.1;
}

该服务器的一个网卡配置的IP地址为192.168.200.1/24,

就是通过这个网卡给和它连接的服务器提供IP地址分配服务。

同时filename配置为pxelinux.0以及next-server的设置可以使得

裸机上的PXE客户端从这个服务器上获得引导启动。

3、安装syslinux(ESXi就靠这个引导启动了),无须配置,之需要通过locate找到pxelinux.0即可,我的是在/usr/share/syslinux/pxelinux.0

4、安装tftpd,我使用的版本是tftp-hpa 5.1。需要配置告知tftp根目录是啥,我的配置在/etc/conf.d/in.tftpd ,内容如下:

# /etc/init.d/in.tftpd


INTFTPD_PATH="/var/lib/tftpboot"
# For more options, see in.tftpd(8)
# -R 4096:32767 solves problems with ARC firmware, and obsoletes
# the /proc/sys/net/ipv4/ip_local_port_range hack.
# -s causes $INTFTPD_PATH to be the root of the TFTP tree.
# -l is passed by the init script in addition to these options.
INTFTPD_OPTS="-R 4096:32767 -s ${INTFTPD_PATH}"

5、该ESXi5.0update1出场了:

5.1、通过官网下载VMware-VMvisor-Installer-5.0.0.update01-623860.x86_64.iso试用,比如可存放在自己Linux系统的/usr/data/isos/VMware-VMvisor-Installer-5.0.0.update01-623860.x86_64.iso处

5.2、挂在镜像文件:mount -o loop VMware-VMvisor-Installer-5.0.0.update01-623860.x86_64.iso /media/

5.3、将光盘中文件整体拷贝到tftp服务根目录下:cp -r /media/* /var/lib/tftpboot/

5.4、准备pxelinux.0用于网络引导安装:cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux.0

5.5、准备pxelinux引导配置文件:mkdir -p /var/lib/tftpboot/pxelinux.cfg,在该创建目录下新建文件default,其内容为,

DEFAULT install
MENU TITLE ESXi-5.0-update01 Boot Menu
NOHALT 1
PROMPT 0
TIMEOUT 80
LABEL install
  KERNEL mboot.c32
  APPEND -c boot.cfg
MENU LABEL ESXi-5.0-update01 ^Installer
LABEL hddboot
  LOCALBOOT 0x80
  MENU LABEL ^Boot from local disk

5.6、创建自动安装脚本ks.cfg用于引导ESXi自动完成安装:mkdir -p /var/lib/tftpboot/esxi5u1_ks,在该目录下创建ks.cfg,内容如下,

#Producting kickstart scripted installation For ESXi 5
vmaccepteula
rootpw esxi5up1
install --firstdisk --overwritevmfs
network --bootproto=static --ip=192.168.200.2 --gateway=192.168.200.1 --netmask=255.255.255.0 --hostname=esxi5 --nameserver=192.168.0.1 --device=vmnic0 --addvmportgroup=0
reboot
 
%firstboot --interpreter=busybox

# SSH and ESXi shell
vim-cmd hostsvc/enable_ssh
vim-cmd hostsvc/start_ssh
vim-cmd hostsvc/enable_esx_shell
vim-cmd hostsvc/start_esx_shell
poweroff

其含义是启动自动安装脚本后,接受vmware协议,设置系统后台root密码为esxi5up1,安装系统到第一块硬盘,配置网络地址192.168.200.2到第一块网卡上;

安装配置完后重启;

首次启动时配置启动esx的shell会话并允许ssh远程登录;

完成配置后关机。

5.7、为了让pxe引导启动后去执行该ks.cfg,需要配置/var/lib/tftpboot/boot.cfg,将其中的kernelopt这行改为:kernelopt=ks=http://192.168.200.1/esxi5u1_ks/ks.cfg

5.8、根据5.7的配置,裸机引导启动时需要能访问http://192.168.200.1/esxi5u1_ks/ks.cfg,在此我借助apache办到。安装httpd-2.2.19.tar.gz到/usr/local/apache,WEB根目录位于系统的/usr/local/apache/htdocs,则我们进入到该目录,执行ln -s /var/lib/tftpboot/esxi5u1_ks esxi5u1_ks。这样一来,我们可以访问http://192.168.200.1/esxi5u1_ks/ks.cfg

完成以上操作后,安装环境基本搭建完毕。准备一个裸机和它网络相连,启动后现进入BIOS,配置启动优先顺序为(1)硬盘;(2)支持PXE启动引导的网卡;... ...

在此要注意硬盘上一定没有可引导启动的系统,最好是空盘。这样首次启动时会通过网卡启动进行安装,按照脚本再次重启就进入硬盘进行配置后关机,故正常情况下最后该系统完成安装时是关闭状态。