Oracle Solaris 10 9/10 安装指南:基于网络的安装

第 14 章 SPARC: 使用 WAN Boot 进行安装(示例)

本章提供通过广域网 (WAN) 设置和安装客户机系统的示例。本章中的示例说明如何通过 HTTPS 连接执行安全的 WAN Boot 安装。

样例站点设置

图 14–1 显示了此示例的站点设置。

图 14–1 WAN Boot 安装的样例站点

文中对该图形进行了说明。

此样例站点具有以下特征。

创建文档根目录

要存储安装文件和数据,请在 wanserver-1 上的文档根目录 (/opt/apache/htdocs) 中设置以下目录 。

创建 WAN Boot Miniroot

使用带有 -w 选项的 setup_install_server(1M) 将 WAN Boot Miniroot 和 Solaris 软件映像复制到 wanserver-1/export/install/Solaris_10 目录中。

将 Solaris Software 介质放入已连接至 wanserver-1 的介质驱动器中。键入以下命令。


wanserver-1# mkdir -p /export/install/cdrom0
wanserver-1# cd /cdrom/cdrom0/Solaris_10/Tools
wanserver-1# ./setup_install_server -w /export/install/cdrom0/miniroot \
/export/install/cdrom0

将 WAN Boot Miniroot 移到 WAN Boot 服务器的文档根目录 (/opt/apache/htdocs/) 中。


wanserver-1# mv /export/install/cdrom0/miniroot/miniroot \
/opt/apache/htdocs/miniroot/miniroot.s10_sparc

检查客户机 OBP 的 WAN Boot 支持

通过在客户机系统中键入以下命令来确定客户机 OBP 是否支持 WAN Boot。


# eeprom | grep network-boot-arguments
network-boot-arguments: data not available

在前面的示例中,network-boot-arguments: data not available 输出表示客户机 OBP 支持 WAN Boot。

在 WAN Boot 服务器上安装 wanboot 程序

要在 WAN Boot 服务器上安装 wanboot 程序,请将该程序从 Solaris Software 介质上复制到 WAN Boot 服务器的文档根目录。

将 Solaris DVD 或 Solaris Software - 1 CD 放入连接至 wanserver-1 的介质驱动器并键入以下命令。


wanserver-1# cd /cdrom/cdrom0/Solaris_10/Tools/Boot/platform/sun4u/
wanserver-1# cp wanboot /opt/apache/htdocs/wanboot/wanboot.s10_sparc

创建 /etc/netboot 分层结构

在 WAN Boot 服务器上创建 /etc/netboot 目录的 wanclient-1 子目录。WAN Boot 安装程序在安装过程中从此目录检索配置和安全信息。

wanclient-1 位于子网 192.168.198.0 中,并且客户机 ID 为 010003BA152A42。要为 wanclient-1 创建 /etc/netboot 的相应子目录,请执行以下任务。


wanserver-1# cd /
wanserver-1# mkdir /etc/netboot/
wanserver-1# chmod 700 /etc/netboot
wanserver-1# chown nobody:admin /etc/netboot
wanserver-1# exit
wanserver-1# su nobody
Password:
nobody# mkdir -p /etc/netboot/192.168.198.0/010003BA152A42
nobody# chmod 700 /etc/netboot/192.168.198.0
nobody# chmod 700 /etc/netboot/192.168.198.0/010003BA152A42

wanboot-cgi 程序复制到 WAN Boot 服务器

在运行当前 Solaris 发行版的系统上,wanboot-cgi 程序位于 /usr/lib/inet/wanboot/ 目录中。要启用 WAN Boot 服务器以传输安装数据,请将 wanboot-cgi 程序复制到 Web 服务器软件目录中的 cgi-bin 目录中。


wanserver-1# cp /usr/lib/inet/wanboot/wanboot-cgi \
/opt/apache/cgi-bin/wanboot-cgi
wanserver-1# chmod 755 /opt/apache/cgi-bin/wanboot-cgi

(可选)将 WAN Boot 服务器配置为日志服务器

缺省情况下,WAN Boot 日志消息将显示在客户机系统上。此缺省行为可使您快速调试任何安装问题。

要在 WAN Boot 服务器上查看引导和安装消息,请将 bootlog-cgi 脚本复制到 wanserver-1 上的 cgi-bin 目录中。


wanserver-1# cp /usr/lib/inet/wanboot/bootlog-cgi /opt/apache/cgi-bin/
wanserver-1# chmod 755 /opt/apache/cgi-bin/bootlog-cgi

将 WAN Boot 服务器配置为使用 HTTPS

要在您的 WAN Boot 安装中使用 HTTPS,必须在 Web 服务器软件中启用 SSL 支持。还必须在 WAN Boot 服务器上安装数字证书。此示例假设 wanserver-1 上的 Apache Web 服务器被配置为使用 SSL。此示例还假设已将建立 wanserver-1 标识的数字证书和证书颁发机构安装在 wanserver-1 中。

有关如何将您的 Web 服务器软件配置为使用 SSL 的示例,请参见您的 Web 服务器文档。

为客户机提供受信任证书

通过要求服务器对客户机认证自己,可以保护通过 HTTPS 从服务器传输到客户机的数据。要启用服务器认证,您要为客户机提供受信任证书。受信任证书使客户机可以在安装过程中检验服务器的标识。

要向客户机提供受信任证书,使用与 Web 服务器用户相同的用户角色。然后,拆分该证书,以提取受信任证书。然后,将受信任证书插入客户机的 /etc/netboot 分层结构中客户机的 truststore 文件中。

在此示例中,假设 Web 服务器用户角色为 nobody。然后,拆分名为 cert.p12 的服务器 PKCS#12 证书,并将受信任证书插入 wanclient-1/etc/netboot 目录中。


wanserver-1# su nobody
Password:
wanserver-1# wanbootutil p12split -i cert.p12 -t \
/etc/netboot/192.168.198.0/010003BA152A42/truststore

(可选)将私钥和证书用于客户机认证

为了在安装过程中进一步保护您的数据,您可能希望要求 wanclient-1 自身也向 wanserver-1 进行验证。要在您的 WAN Boot 安装中启用客户机认证,请将客户机证书和私钥插入 /etc/netboot 分层结构的客户机子目录中。

要向客户机提供私钥和证书,请执行以下任务。

在此示例中,假设 Web 服务器用户角色为 nobody。然后拆分名为 cert.p12 的服务器 PKCS#12 证书。您为 wanclient-1/etc/netboot 分层结构中插入证书。然后在客户机的 keystore 文件中插入名为 wanclient.key 的私钥。


wanserver-1# su nobody
Password:
wanserver-1# wanbootutil p12split -i cert.p12 -c \
/etc/netboot/192.168.198.0/010003BA152A42/certstore -k wanclient.key
wanserver-1# wanbootutil keymgmt -i -k wanclient.key \
-s  /etc/netboot/192.168.198.0/010003BA152A42/keystore \
-o type=rsa

为服务器和客户机创建密钥

要保护在服务器和客户机之间传输的数据,可以创建一个散列密钥和一个加密密钥。服务器使用散列密钥保护 wanboot 程序的完整性。服务器使用加密密钥对配置和安装数据进行加密。客户机使用散列密钥检查下载的 wanboot 程序的完整性。客户机使用加密密钥在安装过程中解密数据。

首先,使用与 Web 服务器用户相同的用户角色。在本示例中,Web 服务器用户角色为 nobody


wanserver-1# su nobody
Password:

然后,使用 wanbootutil keygen 命令创建 wanserver-1 的主 HMAC SHA1 密钥。


wanserver-1# wanbootutil keygen -m

然后,为 wanclient-1 创建散列密钥和加密密钥。


wanserver-1# wanbootutil keygen -c -o net=192.168.198.0,cid=010003BA152A42,type=sha1
wanserver-1# wanbootutil keygen -c -o net=192.168.198.0,cid=010003BA152A42,type=3des

上一个命令为 wanclient-1 创建 HMAC SHA1 散列密钥和 3DES 加密密钥。192.168.198.0 指定 wanclient-1 的子网,010003BA152A42 指定 wanclient-1 的客户机 ID。

创建 Solaris Flash 归档文件

在本示例中,您通过克隆 wanserver-1 主系统创建 Solaris Flash 归档文件。此归档文件的文件名为 sol_10_sparc,完全是从主系统复制而来的。此归档文件是与主系统完全相同的副本。此归档文件存储在 sol_10_sparc.flar 中。将归档文件保存在 WAN Boot 服务器上文档根目录的 flash/archives 子目录中。


wanserver-1# flarcreate -n sol_10_sparc \
/opt/apache/htdocs/flash/archives/sol_10_sparc.flar

创建 sysidcfg 文件

要预配置 wanclient-1 系统,请在 sysidcfg 文件中指定关键字和值。将此文件保存在 wanserver-1 文档根目录的相应的子目录中。


示例 14–1 Wanclient-1 系统的 sysidcfg 文件

以下是 wanclient-1sysidcfg 文件示例。这些系统的主机名、IP 地址和网络掩码已通过编辑命名服务得到预配置。此文件位于 /opt/apache/htdocs/flash/ 目录。

network_interface=primary {hostname=wanclient-1
                           default_route=192.168.198.1
                           ip_address=192.168.198.210
                           netmask=255.255.255.0
                           protocol_ipv6=no}
timezone=US/Central
system_locale=C
terminal=xterm
timeserver=localhost
name_service=NIS {name_server=matter(192.168.254.254)
                  domain_name=leti.example.com
                  }
security_policy=none

创建客户机的配置文件

对于 wanclient-1 系统,创建名为 wanclient_1_prof 的配置文件。wanclient_1_prof 文件包含以下项,这些项定义要安装在 wanclient-1 系统中的 当前 Solaris 发行版 软件。

# profile keywords         profile values
# ----------------         -------------------
install_type               flash_install
archive_location           https://192.168.198.2/flash/archives/cdrom0.flar
partitioning               explicit
filesys                    c0t1d0s0 4000 /
filesys                    c0t1d0s1 512 swap
filesys                    c0t1d0s7 free /export/home

下表说明了此示例中的一些关键字和值。

install_type

该配置文件在克隆系统上安装 Solaris Flash 归档文件。在初始安装过程中,所有文件都被覆盖。

archive_location

wanserver-1 中检索到压缩的 Solaris Flash 归档文件。

partitioning

文件系统片由 filesys 关键字和 explicit 值来确定。根目录 (/) 的大小基于 Solaris Flash 归档文件的大小。swap 的大小被设置为所需的大小,安装在 c0t1d0s1 上。/export/home 基于剩余的磁盘空间。/export/home 安装在 c0t1d0s7 上。

创建并验证 rules 文件

自定义 JumpStart 程序使用 rules 文件为 wanclient-1 系统选择正确的安装配置文件。创建名为 rules 的文本文件。然后,将关键字和值添加到此文件中。

wanclient-1 系统的 IP 地址为 192.168.198.210,网络掩码为 255.255.255.0。使用 network 规则关键字指定自定义 JumpStart 程序安装 wanclient-1 时应使用的配置文件。


network 192.168.198.0 - wanclient_1_prof - 

rules 文件指定自定义 JumpStart 程序使用 wanclient_1_profwanclient-1 上安装 当前 Solaris 发行版 软件。

命名此规则文件 wanclient_rule

创建配置文件和 rules 文件之后,请运行 check 脚本检验文件是否有效。


wanserver-1# ./check -r wanclient_rule

如果 check 脚本没有找到任何错误,该脚本将创建 rules.ok 文件。

rules.ok 文件保存在 /opt/apache/htdocs/flash/ 目录中。

创建系统配置文件

创建系统配置文件,该文件列出 sysidcfg 文件和自定义 JumpStart 文件在安装服务器上的位置。将此文件保存在 WAN Boot 服务器可以访问的目录中。

在以下示例中,wanboot-cgi 程序在 WAN Boot 服务器的文档根目录中查找 sysidcfg 和自定义 JumpStart 文件。WAN Boot 服务器的域名为 https://www.example.com。WAN Boot 服务器被配置为使用安全的 HTTP,因此数据和文件在安装过程中受到保护。

在此示例中,系统配置文件名称为 sys-conf.s10–sparc,该文件保存在 WAN Boot 服务器上的 /etc/netboot 分层结构中。sysidcfg 文件和自定义 JumpStart 文件位于文档根目录的 flash 子目录中。

SsysidCF=https://www.example.com/flash/
SjumpsCF=https://www.example.com/flash/

创建 wanboot.conf 文件

WAN Boot 使用包含在 wanboot.conf 文件中的配置信息安装客户机。在文本编辑器中创建 wanboot.conf 文件。将该文件保存到 WAN Boot 服务器上的 /etc/netboot 分层结构中相应的客户机子目录中。

以下 wanclient-1wanboot.conf 文件包含使用安全 HTTP 的 WAN 安装的配置信息。此文件也指示 WAN Boot 使用 HMAC SHA1 散列密钥和 3DES 加密密钥来保护数据。

boot_file=/wanboot/wanboot.s10_sparc
root_server=https://www.example.com/cgi-bin/wanboot-cgi
root_file=/miniroot/miniroot.s10_sparc
signature_type=sha1
encryption_type=3des
server_authentication=yes
client_authentication=no
resolve_hosts=
boot_logger=
system_conf=sys-conf.s10–sparc

wanboot.conf 文件指定以下配置。

boot_file=/wanboot/wanboot.s10_sparc

wanboot 程序命名为 wanboot.s10_sparc。此程序位于 wanserver-1 上文档根目录的 wanboot 目录中。

root_server=https://www.example.com/cgi-bin/wanboot-cgi

wanserver-1wanboot-cgi 程序的位置为 https://www.example.com/cgi-bin/wanboot-cgi。URL 的 https 部分表示此 WAN Boot 安装使用安全的 HTTP。

root_file=/miniroot/miniroot.s10_sparc

WAN Boot Miniroot 命名为 miniroot.s10_sparc。Miniroot 位于 wanserver-1 上的文档根目录的 miniboot 目录中。

signature_type=sha1

通过使用 HMAC SHA1 散列密钥为 wanboot 程序和 WAN Boot 文件系统签名。

encryption_type=3des

wanboot 程序和 WAN Boot 文件系统使用 3DES 密钥进行加密。

server_authentication=yes

在安装过程中认证服务器。

client_authentication=no

在安装过程中不认证客户机。


注 –

如果您执行(可选)将私钥和证书用于客户机认证中的任务,则将该参数设置为 client_authentication=yes


resolve_hosts=

不需要其他主机名来执行 WAN 安装。wanboot-cgi 程序所需的所有主机名均在 wanboot.conf 文件和客户机证书中进行指定。

boot_logger=

引导和安装日志信息显示在系统控制台上。如果您配置了(可选)将 WAN Boot 服务器配置为日志服务器中日志服务器,而且还希望 WAN Boot 消息显示在 WAN Boot 服务器上,则将该参数设置为 boot_logger=https://www.example.com/cgi-bin/bootlog-cgi

system_conf=sys-conf.s10–sparc

指定 sysidcfg 和 JumpStart 文件位置的系统配置文件位于 wanserver--1/etc/netboot 分层结构的 sys-conf.s10–sparc 文件中。

在本示例中,您将 wanboot.conf 文件保存在 wanserver-1 上的 /etc/netboot/192.168.198.0/010003BA152A42 目录中。

检查 OBP 中的 net 设备别名

要使用 boot net 从 WAN 引导客户机,必须将 net 设备别名设置为客户机的主网络设备。在客户机的 ok 提示符后键入 devalias 命令,以检验 net 别名是否被设置为主网络设备 /pci@1f,0/pci@1,1/network@c,1


ok devalias
screen                   /pci@1f,0/pci@1,1/SUNW,m64B@2
net                      /pci@1f,0/pci@1,1/network@c,1
net2                     /pci@1f,0/pci@1,1/network@5,1
disk                     /pci@1f,0/pci@1/scsi@8/disk@0,0
cdrom                    /pci@1f,0/pci@1,1/ide@d/cdrom@0,0:f
keyboard                 /pci@1f,0/pci@1,1/ebus@1/su@14,3083f8
mouse                    /pci@1f,0/pci@1,1/ebus@1/su@14,3062f8

在上一个输出示例中,主网络设备 /pci@1f,0/pci@1,1/network@c,1 被指定为 net 别名。您不需要重置别名。

在客户机上安装密钥

为服务器和客户机创建密钥中,您已创建散列密钥和加密密钥,以便在安装过程中保护您的数据。要使客户机能够在安装过程中对传输自 wanserver-1 的数据进行加密,请在 wanclient-1 上安装这些密钥。

wanserver-1 上显示密钥值。


wanserver-1# wanbootutil keygen -d -c -o net=192.168.198.0,cid=010003BA152A42,type=sha1
b482aaab82cb8d5631e16d51478c90079cc1d463
wanserver-1# wanbootutil keygen -d -c -o net=192.168.198.0,cid=010003BA152A42,type=3des
9ebc7a57f240e97c9b9401e9d3ae9b292943d3c143d07f04

上一个示例使用以下信息。

net=192.168.198.0

指定客户机子网的 IP 地址

cid=010003BA152A42

指定客户机的 ID

b482aaab82cb8d5631e16d51478c90079cc1d463

指定客户机的 HMAC SHA1 散列密钥值

9ebc7a57f240e97c9b9401e9d3ae9b292943d3c143d07f04

指定客户机的 3DES 加密密钥值

如果在安装过程中使用 AES 加密密钥,请将 type=3des 更改为 type=aes 以显示加密密钥值。

wanclient-1 上的 ok 提示符后安装密钥。


ok set-security-key wanboot-hmac-sha1  b482aaab82cb8d5631e16d51478c90079cc1d463
ok set-security-key wanboot-3des  9ebc7a57f240e97c9b9401e9d3ae9b292943d3c143d07f04

上一个命令执行以下任务。

安装客户机

通过在 ok 提示符后为 wanclient-1 设置网络引导参数,然后引导客户机,可以执行无人参与安装。


ok setenv network-boot-arguments host-ip=192.168.198.210,
router-ip=192.168.198.1,subnet-mask=255.255.255.0,hostname=wanclient-1,
file=http://192.168.198.2/cgi-bin/wanboot-cgi
ok boot net - install
Resetting ...




Sun Blade 100 (UltraSPARC-IIe), No Keyboard
Copyright 1998-2003 Sun Microsystems, Inc.  All rights reserved.
OpenBoot 4.x.build_28, 512 MB memory installed, Serial #50335475.
Ethernet address 0:3:ba:e:f3:75, Host ID: 83000ef3.



Rebooting with command: boot net - install
Boot device: /pci@1f,0/network@c,1  File and args: - install



<time unavailable> wanboot progress: wanbootfs: Read 68 of 68 kB (100%) 
<time unavailable> wanboot info: wanbootfs: Download complete
Fri Jun 20 09:16:06 wanboot progress: miniroot: Read 166067 of 166067 kB (100%)
Fri Jun 20Tue Apr 15 09:16:06 wanboot info: miniroot: Download complete
SunOS Release 5.10 Version WANboot10:04/11/03 64-bit
Copyright 1983-2003 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Configuring devices.

将设置以下变量。

客户机通过 WAN 进行安装。如果 wanboot 程序没有找到所需的所有安装信息,则可能会提示您在命令行输入缺少的信息。