Search the VMware Knowledge Base (KB)
View by Article ID

使用脚本式安装功能部署 ESXi 5.x (2095203)

  • 0 Ratings

Purpose

免责声明:本文为 Deploying ESXi 5.x using the Scripted Install feature (2004582) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


本文介绍如何在开始时设置脚本式安装以及可能对您有用的一些功能。本文并非是详尽的指南,但可用作设置脚本式安装环境的参考。有关设置脚本式安装的更详细信息,请参见 ESXi 和 vCenter Server Installation and Setup 指南。

Resolution

ESXi 5.x 的脚本式安装功能提供了一种高效的多 ESXi 主机部署方式。可以使用无需人工干预的脚本式安装快速部署 ESXi 主机。安装脚本 (ks.cfg) 包含 ESXi 主机的设置,可对这些设置进行修改以符合环境的需求。可以将此脚本应用于您希望具有相似配置的所有主机。这样,与执行手动安装相比,您可以在更短的时间内执行快速安装。此外,这还可确保所有主机都具有相似配置并基于所需标准进行构建。

ESXi 4.x 与 5.x 之间的脚本式安装差异

如果您之前在 ESXi 4.x 中使用了脚本式安装,则在使用 ESXi 5.x 执行脚本式安装之前,应熟悉 ESXi 4.x 与 ESXi 5.x 脚本式安装命令之间的差异。以下是要注意的差异:

  • 在 ESXi 5.x 中,由于在主机引导时会直接将安装映像加载到主机内存,因此无需在安装脚本中包括安装介质的位置。
  • 除了脚本式安装之外,ESXi 5.x 还支持脚本式升级。在 ESXi 4.x 中,仅可执行全新安装。
  • 一些命令已被弃用或更改:

    • 弃用的命令auth/authconfig、bootloader、firewall、firewallport、timezone、virtualdisk、zerombr、%packages
    • 更改的命令autopart(已替换为 install、upgrade、installorupgrade)、esxlocation、serialnum/vmserialnum

必备条件

使用 ESXi 5.x 执行脚本式安装需要:

  1. 使用受支持的命令创建脚本 (ks.cfg)。
  2. 根据需要编辑安装脚本,以更改每个主机的唯一设置。
  3. 通过指定引导选项或以 PXE 方式自动引导来运行脚本式安装过程。

安装脚本 (ks.cfg) 可位于以下任何位置:

  • FTP
  • HTTP/HTTPS
  • NFS 共享
  • USB 闪存驱动器
  • CD/DVD 设备

如何指定关闭自定义 ks.cfg 文件

您可以使用单个脚本或为每个计算机使用一个单独脚本在多个计算机上安装 ESXi 5.x。可以使用两种不同的方法来启动安装脚本:

  • 通过在引导加载程序过程中按 Shift+O 进行交互式引导。输入命令以查找 ks.cfg 文件。

    示例ks=<location of installation script> <boot command line options>

  • 要执行更自动化的安装,可以通过 boot.cfg 文件的 kernelopt 行传递选项,以进行 PXE 引导安装。设置 PXE 引导服务器超出了本文的讨论范围,且在每个环境中都是唯一的。有关设置 PXE 引导的详细信息,请参见 ESXi 和 vCenter Server Installation and Setup 指南。

注意:必须给定 ks= 选项,才能指定安装脚本 (ks.cfg) 文件的位置。如果省略 ks=,文本安装程序将继续,就像这是一个正常的安装一样。

注意:当通过已启用 DHCP 的 PXE 使用 kickstart 文件安装 ESXi 5.x 时,DNS 设置不可用,且不会保存在配置文件中。

ks= 命令的选项

  

引导选项

描述

BOOTIF=<MAC address>

查找安装脚本和安装介质时尝试使用网络适配器设备。

gateway=<ip address>

将此网络网关设为默认网关

ip=<ip address>

设置要用于下载安装脚本和安装介质的静态 IP 地址。

ks=cdrom:/<path\>

使用位于 CD-ROM 驱动器中的 CD 的路径下的脚本执行脚本式安装。

ks=file://<path>

使用路径下的脚本执行脚本式安装。

ks=protocol://<serverpath>

使用位于给定 URL 中的网络上的脚本执行脚本式安装。协议可以是 HTTP、HTTPS、FTP 或 NFS。

ks=usb:</path>

通过从已连接的 USB 驱动器访问脚本来执行脚本式安装。搜索名称为 ks.cfg 的文件。

nameserver=<ip address>

指定域名服务器

netdevice=<device>

使用网络适配器设备(MAC 或 vmnicN)

netmask=<subnet mask>

指定网络接口的子网掩码

vlanid=<vlanid>

配置位于指定 VLAN 上的网卡

 

ksdevice=device

查找安装脚本和安装介质时尝试使用网络适配器设备。指定为 MAC 地址(如 00:50:56:C0:00:01)。此位置也可以是 vmnicNN 名称。如果未进行指定并且需要通过网络检索文件,则安装程序会默认使用最先发现的插入的网络适配器。

  
示例:关闭 NFS 共享使用如下命令:

ks=nfs://192.168.0.101/FS2/isos/esxi-B.cfg nameserver=192.168.0.57 ip=192.168.0.3 netmask=255.255.255.0 gateway=192.168.0.254

创建 ks.cfg 文件

要自定义 ESXi 安装,必须在执行上述引导过程之前创建 ks.cfg 文件。默认安装脚本 ks.cfg 位于 /etc/vmware/weasel/ks.cfg 上的初始内存磁盘中。

如果您不希望执行任何自定义,则可以使用引导选项 ks=file://etc/vmware/weasel/ks.cfg 指定安装脚本 ks.cfg 的位置。

注意:使用 ks.cfg 安装 ESXi 时,默认根密码设置为 mypassword

示例ks.cfg 文件在 /etc/vmware/weasel 中显示如下:

#
# Sample scripted installation file
#
# Accept the VMware End User License Agreement
vmaccepteula
# Set the root password for the DCUI and Tech Support Mode
rootpw mypassword
# The install media is in the CD-ROM drive
install --firstdisk --overwritevmfs
# Set the network to DHCP on the first network adapater
network --bootproto=dhcp --device=vmnic0
# A sample post-install script
%post --interpreter=python --ignorefailure=true
import time
stampFile = open('/finished.stamp', mode='w')
stampFile.write( time.asctime() )

除此之外,您还可以根据环境需求进一步自定义脚本。以下各表显示了可用于自定义脚本的命令。使用这些表时,请注意:

  • 参数定义为命令后面的任何单词,且通常(但不总是)以两个短划线开头。
  • 字符串定义为分配给命令或参数的任何值。字符串可以用双引号或单引号分隔,或者在没有空格字符的情况下不包含任何引号。
  • ks.cfg 脚本本身包含无顺序的命令列表,其中大多数命令使用其他参数。
  • 命令可以是单行或多行的,其中多行命令始终以 % 字符开头,并在脚本末尾处或单独的多行命令开始时结束。
  • 可以使用 # 字符(必须位于字符串之外)在脚本内添加注释。# 之后的所有字符将被忽略。

可以在 ks.cfg 文件中使用以下命令:

清除分区

命令

功能

clearpart(可选)

清除磁盘上现有的任何分区。需要指定 install 命令。

--drives=

移除指定驱动器上的分区。

--alldrives

忽略“--drives=”要求,并允许在每个驱动器上清除分区。

--ignoredrives=

移除除指定驱动器以外的所有驱动器上的分区。除非指定了 --drives=--alldrives 标记,否则需要使用此命令。

允许覆盖指定驱动器上的 vmfs 分区。默认情况下,不允许覆盖 vmfs 分区。

- -overwritevmfs

--firstdisk(=<disk-type1>,[<disk-type2>, ...])

对最先找到的合格磁盘进行分区。合格磁盘按以下顺序排列:

1 本地连接的存储器(本地)

2 网络存储器(远程)

3 usb 磁盘 (usb)

可以使用附加到参数的逗号分隔列表更改磁盘的顺序。


示例
  • clearpart --firstdisk --overwritevmfs
  • clearpart --drives=mpx.vmhba1:C0:T1:L0 --overwritevmfs
  • clearpart --drives=vml.0000000000766d686261313a313a30 –overwritevmfs

创建分区

命令

功能

part  partition(可选)

在系统上创建其他 VMFS 数据存储。每个磁盘只能创建一个数据存储。不能与 install 命令在同一个磁盘上使用。

<datastore name>

指定分区的挂载位置

--ondisk= --ondrive=

指定创建分区的磁盘或驱动器。

--onfirstdisk

对最先找到的合格磁盘进行分区。合格磁盘按以下顺序排列:

(=<disk-type1>,[<disk-type2>, ...])

1 本地连接的存储器(本地)

2 网络存储器(远程)

3 usb 磁盘 (usb)

可以使用附加到参数的逗号分隔列表更改磁盘的顺序。


示例
  • partition –ondisk=mpx.vmhba1:C0:T1:L0 datastore2
  • partition datastore2 --ondisk=mpx.vmhba1:C0:T2:L0
  • part datastore2 --firstdisk=ST3120814A,mptsas,local
安装选项
 

命令

功能

install

指定这是全新安装。

替换已弃用的用于 ESXi 4.1 脚本式安装的 autopart 命令。

需要 install、upgradeinstallorupgrade 命令来确定要在其上安装或升级 ESXi 的磁盘。

--disk=--drive=

指定要分区的磁盘。

--firstdisk=

对最先找到的合格磁盘进行分区。合格磁盘按以下顺序排列:

disk-type1,

1 本地连接的存储器(本地)

[disk-type2,...]

2 网络存储器(远程)

3 usb 磁盘 (usb)

可以使用附加到参数的逗号分隔列表更改磁盘的顺序

--overwritevmfs

安装前要覆盖磁盘上的任何现有 VMFS 数据存储时需要。

--preservevmfs

安装期间保留磁盘上的现有 VMFS 数据存储。

--novmfsondisk

防止在该磁盘上创建 VMFS 分区。如果磁盘上已存在 VMFS 分区,则必须与 --overwritevmfs 一起使用。


示例
  • install --firstdisk --overwritevmfs
  • install --overwritevmfs –-novmfsondisk

升级选项

命令

功能

upgrade

指定这是升级。

替换已弃用的用于 ESXi 4.1 脚本式安装的 autopart 命令。

需要 install、upgradeinstallorupgrade 命令来确定要在其上安装或升级 ESXi 的磁盘。

--disk=--drive=

指定要分区的磁盘。

--firstdisk=

对最先找到的合格磁盘进行分区。合格磁盘按以下顺序排列:

disk-type1,

1 本地连接的存储器(本地)

[disk-type2,...]

2 网络存储器(远程)

3 usb 磁盘 (usb)

可以使用附加到参数的逗号分隔列表更改磁盘的顺序

--deletecosvmdk

如果正在从 ESX 升级系统,则移除包含旧控制台 VMDK 文件 (cos.vmdk) 的目录,以回收 VMFS 数据存储中未使用的空间。


示例
  • upgrade --firstdisk
  • upgrade --firstdisk –deletecosvmdk

安装或升级选项

命令

功能

installorupgrade

需要 install、upgradeinstallorupgrade 命令来确定要在其上安装或升级 ESXi 的磁盘。

--disk=--drive=

指定要分区的磁盘。

--firstdisk=

对最先找到的合格磁盘进行分区。合格磁盘按以下顺序排列:

disk-type1,

1 本地连接的存储器(本地)

[disk-type2,...]

2 网络存储器(远程)

3 usb 磁盘 (usb)

可以使用附加到参数的逗号分隔列表更改磁盘的顺序

--overwritevmfs

安装 ESXi(如果磁盘上存在 VMFS 分区,但不存在 ESX 或 ESXi 安装)。

除非存在该选项,否则当磁盘上存在 VMFS 分区但不存在 ESX 或 ESXi 安装时,安装程序会失败。


示例
  • installorupgrade --firstdisk –overwritevmfs

其他选项

命令

功能

keyboard

将系统的键盘类型设置为以下类型之一:默认、法语、德语、日语、俄语、“英式英语”

dryrun(可选)

解析并检查 kickstart 文件,但实际上不执行安装。

accepteula vmaccepteula(必需)

接受 VMware 许可协议 (EULA)。

reboot

脚本式安装完成后重新引导计算机。

--noeject

安装完成后不弹出 CD。

rootpw(必需)

设置系统的根(管理员)密码。

--iscrypted

指定已加密该密码。

paranoid(可选)

引发任何警告消息从而中断安装。如果省略此命令,则系统会记录警告消息。


示例:
  • vmaccepteula
  • rootpw vmware
  • keyboard 'United Kingdom' - For UK keyboard the quotes are required.

网络选项

命令

功能

network(可选)

指定系统的网络地址。

--bootproto=

指定是通过 DHCP 获得网络设置还是手动对其进行设置。

[dhcp|static]

--device=

vmnicN 形式的网卡 MAC 地址或设备名称。该选项指的是虚拟交换机的“上行链路”设备。

--ip=

设置系统的 IP 地址。此命令与 static bootproto 选项配合使用;如果指定了 static 选项,则此命令是必需的,否则将被忽略。应采用 xxx.xxx.xxx.xxx 形式。

--gateway=

指定网络网关。应采用 xxx.xxx.xxx.xxx 形式。与 static bootproto 选项配合使用。如果未指定任何选项,则会在日志文件中发出警告,并在没有网关设置的情况下继续。

-- nameserver=

指定最多两个名称服务器。与 static bootproto 选项配合使用。应采用 xxx.xxx.xxx.xxx,[xxx.xxx.xxx.xxx] 形式。

--nodns

未使用。这与不指定 --nameserver= 或不向其附加任何参数等效。

--netmask=

指定系统的子网掩码。这应默认使用给定类型的 IP 地址的正确子网掩码。应采用“255.xxx.xxx.xxx”形式。与 static bootproto 选项配合使用。

--hostname=

指定系统的主机名。

--vlanid=

指定系统所处的 VLAN。与 dhcp static bootproto 选项配合使用。应为 1 至 4094 之间的整数。

--addvmportgroup=

指定是否添加虚拟机使用的虚拟机网络端口组。默认值为 1

(0|1)


示例
  • network –bootproto=dhcp --device=vmnic0 --addvmportgroup=0
     
  • network --bootproto=static --device=vmnic0 --ip=123.123.123.123 --netmask=255.255.252.0 --gateway=123.123.123.120 --nameserver=123.123.123.4
     

引导前、引导后和首次引导脚本选项

命令

功能

%pre

指定在评估 kickstart 配置之前要执行的脚本。例如,可使用其生成 kickstart 文件要包含的文件。需要 -unsupported 参数。

--interpreter= [python|busybox]

要使用的脚本解释器,默认为 busybox

%post

安装完成后执行指定的脚本。如果指定多个 %post 部分,则它们将按照在 kickstart 文件中显示的顺序依次执行。

--interpreter= [python|busybox]

要使用的脚本解释器,默认为 busybox

--timeout=secs

设置用于执行脚本的超时时间。如果超时时间到达后脚本仍未完成,则会强制终止脚本。

--ignorefailure=

如果值为 true,则即使 %post 脚本终止并显示错误,安装仍将视为成功。

[true|false]

%firstboot

创建初始化脚本。初始化脚本仅在首次引导期间执行在 %firstboot 部分中指定的命令;该脚本不会对后续引导造成影响。如果指定多个 %firstboot 部分且其级别相同,则它们将按照在 kickstart 文件中显示的顺序依次执行。

--interpreter= [python|busybox]

要使用的脚本解释器,默认为 busybox

%include include

指定要解析的其他 kickstart 文件。该命令的处理方式类似于多行命令,但仅使用一个参数。

<filename>

 
 
您可能不需要使用其中许多命令,但当需要在 ESXi 主机上专门自定义某些选项时,这些命令会非常有用。ESXi 5.x 的脚本式安装功能是高级安装,需要特定配置才能正确执行。

使用以上选项和示例 ks.cfg 文件,可以开始自定义自己的 ESXi 5.x 主机内部版本。有关设置脚本式安装和执行 PXE 引导安装的更详细信息,请参见 ESXi 和 vCenter Server Installation and Setup 指南。

有关安装 ESXi 5.x 的其他方法,请参见以下文章:

Additional Information

Tags

简体中文 Mandarin

See Also

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 0 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.

What can we do to improve this information? (4000 or fewer characters)




Please enter the Captcha code before clicking Submit.
  • 0 Ratings
Actions
KB: