当您使用 add_install_client -d 脚本在安装服务器上添加客户机时,脚本将把 DHCP 配置信息报告到标准输出。创建将网络安装信息传送到客户机时所需的选项和宏时,可以使用此信息。
可以在 DHCP 服务中自定义选项和宏,以执行以下类型的安装。
特定于类的安装-可以指示 DHCP 服务针对某一特定类的所有客户机执行网络安装。例如,您可以定义一个 DHCP 宏,对网络上的所有 Sun Blade 系统执行相同的安装。请使用 add_install_client -d 命令的输出来设置特定于类的安装。
特定于网络的安装-可以指示 DHCP 服务针对某一特定网络的所有客户机执行网络安装。例如,可以定义一个 DHCP 宏,对 192.168.2 网络上的所有系统执行相同的安装。
特定于客户机的安装-可以指示 DHCP 服务针对具有特定以太网地址的客户机执行网络安装。例如,您可以定义一个 DHCP 宏,对以太网地址为 00:07:e9:04:4a:bf 的客户机执行特定的安装。使用 add_install_client -d -e ethernet_address 命令的输出设置特定于客户机的安装。
有关设置客户机以便使用 DHCP 服务器进行网络安装的更多信息,请参见以下过程。
有关使用 DVD 介质的网络安装,请参见使用 DVD 映像添加要从网络安装的系统。
有关使用 CD 介质的网络安装,请参见使用 CD 映像添加要从网络安装的系统。
要从网络安装 DHCP 客户机,您必须创建供应商目录选项,以便传送安装 Solaris OS 所需的信息。以下各表说明了可以用来安装 DHCP 客户机的通用 DHCP 选项。
可以使用表 3–3 中列出的标准 DHCP 选项来配置和安装基于 x86 的系统。这些选项不特定于平台,并且可以用来在各种基于 x86 的系统上安装 Solaris OS。可以通过 DHCP 使用这些选项在基于 x86 的系统上安装 Solaris 10 发行版。有关标准选项的完整列表,请参见 dhcp_inittab(4)。
表 3–4 列出了可以用来安装 Sun 客户机系统的选项。此表中列出的供应商客户机类确定了哪些客户机类可以使用该选项。此处列出的供应商客户机类仅用作示例。您应当指定自己的客户机类,它表示您的网络中需要从网络安装的实际客户机。有关如何确定客户机的供应商客户机类的信息,请参见《系统管理指南:IP 服务》中的“使用 DHCP 选项(任务列表)”。
有关 DHCP 选项的详细信息,请参见《系统管理指南:IP 服务》中的“DHCP 选项信息”。
表 3–3 标准 DHCP 选项的值
选项名 |
代码 |
数据类型 |
粒度 |
最大值 |
描述 |
---|---|---|---|---|---|
BootFile |
N/A |
ASCII |
1 |
1 |
指向客户机的引导文件的路径 |
BootSrvA |
N/A |
IP 地址 |
1 |
1 |
引导服务器的 IP 地址 |
DNSdmain |
15 |
ASCII |
1 |
0 |
DNS 域名 |
DNSserv |
6 |
IP 地址 |
1 |
0 |
DNS 名称服务器列表 |
NISdmain |
40 |
ASCII |
1 |
0 |
NIS 域名 |
NISservs |
41 |
IP 地址 |
1 |
0 |
NIS 服务器的 IP 地址 |
NIS+dom |
64 |
ASCII |
1 |
0 |
NIS+ 域名 |
NIS+serv |
65 |
IP 地址 |
1 |
0 |
NIS+ 服务器的 IP 地址 |
Router |
3 |
IP 地址 |
1 |
0 |
网络路由器的 IP 地址 |
表 3–4 用于为 Solaris 客户机创建供应商目录选项的值
名称 |
代码 |
数据类型 |
粒度 |
最大值 |
供应商客户机类 * |
描述 |
---|---|---|---|---|---|---|
以下供应商目录选项是允许 DHCP 服务器支持 Solaris 安装客户机所需的选项。这些选项在 Solaris 客户机的启动脚本中使用。 注 – 此处列出的供应商客户机类仅用作示例。您应当指定自己的客户机类,它表示您的网络中需要从网络安装的实际客户机。 |
||||||
SrootIP4 |
2 |
IP 地址 |
1 |
1 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
根服务器的 IP 地址 |
SrootNM |
3 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
根服务器的主机名 |
SrootPTH |
4 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
指向根服务器上客户机的根目录的路径 |
SinstIP4 |
10 |
IP 地址 |
1 |
1 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
JumpStart 安装服务器的 IP 地址 |
SinstNM |
11 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
安装服务器的主机名 |
SinstPTH |
12 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
指向安装服务器上的安装映像的路径 |
以下选项可由客户机启动脚本使用,但不是这些脚本所必需的。 注 – 此处列出的供应商客户机类仅用作示例。您应当指定自己的客户机类,它表示您的网络中需要从网络安装的实际客户机。 |
||||||
SrootOpt |
1 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
客户机的根文件系统的 NFS 挂载选项 |
SbootFIL |
7 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
指向客户机的引导文件的路径 |
SbootRS |
9 |
数字 |
2 |
1 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
装入内核时,独立引导程序所使用的 NFS 读大小 |
SsysidCF |
13 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
指向 sysidcfg 文件的路径,格式为 server:/path |
SjumpsCF |
14 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
指向 JumpStart 配置文件的路径,格式为 server:/path |
16 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
指向独立引导文件或 WAN Boot 文件的路径。对于独立引导文件,请使用以下格式。 tftp://inetboot.sun4u 对于 WAN Boot 文件,格式为 http://host.domain/path-to-file 此选项可用于覆盖 BootFile 设置和 siaddr 设置,以检索独立引导文件。支持的协议:tftp (inetboot) 和 http (wanboot)。例如,使用以下格式。tftp://inetboot.sun4u |
|
17 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
网络上使用的代理服务器的 IP 地址和端口号。仅当客户机通过 WAN 引导,且本地网络使用了代理服务器时才需要此选项。例如,使用以下格式:198.162.10.5:8080 |
|
以下这些选项当前无法由 Solaris 客户机启动脚本直接使用,您必须编辑启动脚本才能使用它们。 注 – 此处列出的供应商客户机类仅用作示例。您应当指定自己的客户机类,它表示您的网络中需要从网络安装的实际客户机。 |
||||||
SswapIP4 |
5 |
IP 地址 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
交换服务器的 IP 地址 |
SswapPTH |
6 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
指向交换服务器上客户机的交换文件的路径 |
Stz |
8 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
客户机的时区 |
Sterm |
15 |
ASCII 文本 |
1 |
0 |
SUNW.Sun-Blade-1000, SUNW.Sun-Fire-880, SUNW.i86pc |
终端类型 |
当创建了选项后,就能够创建包括这些选项的宏。下表列出了样例宏,您可以创建这些宏以支持客户机的 Solaris 安装。
表 3–5 支持网络安装客户机的样例宏
宏名 |
包含以下这些选项和宏 |
---|---|
Solaris |
SrootIP4, SrootNM, SinstIP4, SinstNM |
sparc |
SrootPTH, SinstPTH |
sun4u |
Solaris 宏和 sparc 宏 |
sun4v |
Solaris 宏和 sparc 宏 |
i86pc |
Solaris 宏、SrootPTH、SinstPTH、SbootFIL |
SUNW.i86pc |
i86pc 宏 注 – SUNW.i86pc 类的供应商客户机只对 Solaris 10 3/05 发行版和兼容版本有效。 |
SUNW.Sun-Blade-1000 |
sun4u 宏和 SbootFIL |
SUNW.Sun-Fire-880 |
sun4u 宏和 SbootFIL |
PXEClient:Arch:00000:UNDI:002001 |
BootSrvA, BootFile |
xxx.xxx.xxx.xxx 网络地址宏 |
可以将 BootSrvA 选项增加到现有的网络地址宏中。BootSrvA 的值应表示 tftboot 服务器。 |
01client-MAC-address 特定于客户机的宏(例如,010007E9044ABF) |
BootSrvA, BootFile |
上表中列出的宏名与必须从网络安装的客户机的供应商客户机类相匹配。这些宏名是可能位于您的网络上的客户机示例。有关如何确定客户机的供应商客户机类的信息,请参见《系统管理指南:IP 服务》中的“使用 DHCP 选项(任务列表)”。
您可以使用以下方法来创建这些选项和宏。
在 DHCP Manager 中创建选项和宏。有关如何在 DHCP Manager 中创建选项和宏的说明,请参见使用 DHCP Manager 创建安装选项和宏。
使用 dhtadm 命令编写一个创建选项和宏的脚本。有关如何编写创建这些选项和宏的脚本的信息,请参见编写使用 dhtadm 创建选项和宏的脚本。
请注意,提供给特定客户机的供应商选项的总大小不得超过 255 字节,包括选项代码和长度信息。这限制了当前 Solaris DHCP 协议的实施。一般情况下,应该能够传送所需的最小量的供应商信息。在需要输入路径名的选项中,应该使用简短的路径名。如果创建指向长路径的符号链接,则可以使用更简短的链接名。
可以使用 DHCP Manager 创建在表 3–4 中列出的选项和在表 3–5 中列出的宏。
在为安装创建 DHCP 宏之前执行以下任务。
将希望使用 DHCP 进行安装的客户机添加为网络安装服务器的安装客户机。有关如何将客户机添加至安装服务器的信息,请参见第 4 章,从网络进行安装(概述)。
配置 DHCP 服务器。如果您尚未配置 DHCP 服务器,请参见《系统管理指南:IP 服务》中的第 13 章 “规划 DHCP 服务(任务)”。
在 DHCP 服务器系统上,成为超级用户或承担等效角色。
启动 DHCP Manager。
# /usr/sadm/admin/bin/dhcpmgr & |
将显示“DHCP Manager”窗口。
在“DHCP Manager”中选择“选项”选项卡。
从“编辑”菜单中选择“创建”。
“创建选项”面板会打开。
键入第一个选项的选项名称,然后为该选项键入相应的值。
请使用 add_install_client 命令的输出、表 3–3 和表 3–4 来检查必须创建的选项的选项名称和值。请注意,供应商客户机类只是建议的值。您应当创建自己的客户机类,以指明需要从 DHCP 服务获取 Solaris 安装参数的实际客户机类型。有关如何确定客户机的供应商客户机类的信息,请参见《系统管理指南:IP 服务》中的“使用 DHCP 选项(任务列表)”。
输入所有值之后,单击“确定”。
在“选项”选项卡中,选择刚刚创建的选项。
从“编辑”菜单中选择“复制”。
“复制选项”面板会打开。
键入另一个选项名称,然后相应地修改其他值。
您现在可以创建宏,以将选项传送给网络安装客户机,如以下过程所述。
您不需要将这些选项添加到 Solaris 客户机的 /etc/dhcp/inittab 文件中,因为此文件中已经包含了这些选项。
在为安装创建 DHCP 宏之前执行以下任务。
将希望使用 DHCP 进行安装的客户机添加为网络安装服务器的安装客户机。有关如何将客户机添加至安装服务器的信息,请参见第 4 章,从网络进行安装(概述)。
配置 DHCP 服务器。如果您尚未配置 DHCP 服务器,请参见《系统管理指南:IP 服务》中的第 13 章 “规划 DHCP 服务(任务)”。
创建要在宏中使用的 DHCP 选项。有关如何创建 DHCP 选项的说明,请参见如何创建选项以支持 Solaris 安装 (DHCP Manager)。
在“DHCP Manager”中选择“宏”选项卡。
从“编辑”菜单中选择“创建”。
“创建宏”面板会打开。
键入宏名。
有关可能使用的宏名,请参见表 3–5 。
单击“选择”按钮。
“选择选项”面板会打开。
在“目录”列表中选择“供应商”。
将列出您创建的供应商选项。
选择要增加到宏的选项,然后单击“确定”。
键入选项的值。
要包含其他宏,请键入 Include 作为选项名,并键入宏名作为选项值。
宏完成后,单击“确定”。
从网络安装系统时,如果计划使用 DHCP,那么需要设置一个安装服务器并将系统添加为安装客户机。有关更多信息,请参见第 4 章,从网络进行安装(概述)。
如果计划在 WAN boot 安装中使用 DHCP,则需要执行其他任务。更多信息,请参见第 9 章,WAN Boot(概述)。
如果计划在自定义 JumpStart 安装中使用 DHCP,则需要创建一个配置文件和一个 rules.ok 文件。有关更多信息,请参见《Solaris 10 11/06 安装指南:自定义 JumpStart 和高级安装》中的第 2 章 “自定义 JumpStart(概述)”。
有关 DHCP 的更多信息,请参见《系统管理指南:IP 服务》中的第 III 部分, “DHCP”。
可以通过改写示例 3–1 中的示例创建一个 Korn shell 脚本,以创建表 3–3 和表 3–4 中列出的所有选项和一些有用的宏。请确保将括在引号中的所有 IP 地址和值更改为适用于您的网络的正确的 IP 地址、服务器名和路径。您还应编辑 Vendor= 关键字以指明您拥有的客户机类。使用 add_install_client -d 报告的信息,以获取改写脚本所需的数据。
# Load the Solaris vendor specific options. We'll start out supporting # the Sun-Blade-1000, Sun-Fire-880, and i86 platforms. Note that the # SUNW.i86pc option only applies for the Solaris 10 3/05 release. # Changing -A to -M would replace the current values, rather than add them. dhtadm -A -s SrootOpt -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,1,ASCII,1,0' dhtadm -A -s SrootIP4 -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,2,IP,1,1' dhtadm -A -s SrootNM -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,3,ASCII,1,0' dhtadm -A -s SrootPTH -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,4,ASCII,1,0' dhtadm -A -s SswapIP4 -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,5,IP,1,0' dhtadm -A -s SswapPTH -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,6,ASCII,1,0' dhtadm -A -s SbootFIL -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,7,ASCII,1,0' dhtadm -A -s Stz -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,8,ASCII,1,0' dhtadm -A -s SbootRS -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,9,NUMBER,2,1' dhtadm -A -s SinstIP4 -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,10,IP,1,1' dhtadm -A -s SinstNM -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,11,ASCII,1,0' dhtadm -A -s SinstPTH -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,12,ASCII,1,0' dhtadm -A -s SsysidCF -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,13,ASCII,1,0' dhtadm -A -s SjumpsCF -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,14,ASCII,1,0' dhtadm -A -s Sterm -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,15,ASCII,1,0' dhtadm -A -s SbootURI -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,16,ASCII,1,0' dhtadm -A -s SHTTPproxy -d \ 'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,17,ASCII,1,0' # Load some useful Macro definitions. # Define all Solaris-generic options under this macro named Solaris. dhtadm -A -m Solaris -d \ ':SrootIP4=10.21.0.2:SrootNM="blue2":SinstIP4=10.21.0.2:SinstNM="red5":' # Define all sparc-platform specific options under this macro named sparc. dhtadm -A -m sparc -d \ ':SrootPTH="/export/sparc/root":SinstPTH="/export/sparc/install":' # Define all sun4u architecture-specific options under this macro named sun4u. # (Includes Solaris and sparc macros.) dhtadm -A -m sun4u -d ':Include=Solaris:Include=sparc:' # Solaris on IA32-platform-specific parameters are under this macro named i86pc. # Note that this macro applies only for the Solaris 10 3/05 release. dhtadm -A -m i86pc -d \ ':Include=Solaris:SrootPTH="/export/i86pc/root":SinstPTH="/export/i86pc/install"\ :SbootFIL="/platform/i86pc/kernel/unix":' # Solaris on IA32 machines are identified by the "SUNW.i86pc" class. All # clients identifying themselves as members of this class will see these # parameters in the macro called SUNW.i86pc, which includes the i86pc macro. # Note that this class only applies for the Solaris 10 3/05 release. dhtadm -A -m SUNW.i86pc -d ':Include=i86pc:' # Sun-Blade-1000 platforms identify themselves as part of the # "SUNW.Sun-Blade-1000" class. # All clients identifying themselves as members of this class # will see these parameters. dhtadm -A -m SUNW.Sun-Blade-1000 -d \ ':SbootFIL="/platform/sun4u/kernel/sparcv9/unix":\ Include=sun4u:' # Sun-Fire-880 platforms identify themselves as part of the "SUNW.Sun-Fire-880" class. # All clients identifying themselves as members of this class will see these parameters. dhtadm -A -m SUNW.Sun-Fire-880 -d \ ':SbootFIL="/platform/sun4u/kernel/sparcv9/unix":Include=sun4u:' # Add our boot server IP to each of the network macros for our topology served by our # DHCP server. Our boot server happens to be the same machine running our DHCP server. dhtadm -M -m 10.20.64.64 -e BootSrvA=10.21.0.2 dhtadm -M -m 10.20.64.0 -e BootSrvA=10.21.0.2 dhtadm -M -m 10.20.64.128 -e BootSrvA=10.21.0.2 dhtadm -M -m 10.21.0.0 -e BootSrvA=10.21.0.2 dhtadm -M -m 10.22.0.0 -e BootSrvA=10.21.0.2 # Make sure we return host names to our clients. dhtadm -M -m DHCP-servername -e Hostname=_NULL_VALUE_ # Create a macro for PXE clients that want to boot from our boot server. # Note that this macro applies for the Solaris 10 3/05 release. dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d \ :BootFile=nbp.i86pc:BootSrvA=10.21.0.2: # Create a macro for PXE clients that want to boot from our boot server. # Note that this macro applies for the Solaris 10 2/06 release. dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d \ :BootFile=i86pc:BootSrvA=10.21.0.2: # Create a macro for the x86 based client with the Ethernet address 00:07:e9:04:4a:bf # to install from the network by using PXE. dhtadm -A -m 010007E9044ABF -d :BootFile=010007E9044ABF:BootSrvA=10.21.0.2: # The client with this MAC address is a diskless client. Override the root settings # which at the network scope setup for Install with our client's root directory. dhtadm -A -m 0800201AC25E -d \ ':SrootIP4=10.23.128.2:SrootNM="orange-svr-2":SrootPTH="/export/root/10.23.128.12":' |
以超级用户的身份在批处理模式下执行 dhtadm。指定脚本名称,以将选项和宏添加到您的 dhcptab 中。例如,如果您的脚本名称为 netinstalloptions,则键入以下命令。
# dhtadm -B netinstalloptions |
现在,具有 Vendor= 字符串中列出的供应商客户机类的客户机可以使用 DHCP 通过网络进行安装了。
有关如何使用 dhtadm 命令的更多信息,请参见 dhtadm(1M)。有关 dhcptab 文件的更多信息,请参见 dhcptab(4)。