Oracle Solaris 11 自动安装程序基本操作

作者:Ginny Henningsen

本文介绍如何使用 Oracle Solaris 11 的自动安装程序 (AI) 执行基本操作,扩充了 Isaac Rozenfeld 编著的“安装和部署管理”速查表的内容。


2012 年 6 月发布

为降低基于 Oracle Solaris 的系统和软件的部署开销,Oracle 工程师重新设计了 Oracle Solaris 11 版中的自动安装。Oracle Solaris 11 引入了一种基于网络的全新自动安装程序 (AI),解决了软件包依赖关系的问题,提供了更高的供应灵活性,支持在 SPARC 和 x86 系统上执行无需人工干预的安装。本文介绍了如何执行其基本操作:

  • 如何创建安装服务
  • 如何创建清单
  • 如何创建系统配置文件
  • 如何排除安装故障
  • 如何从 Jumpstart 迁移
  • 如何创建引导环境
如果想要下载软件、加入论坛、阅读类似本文的内容之外的其他技术方法精品文章,请成为 OTN 成员。无垃圾邮件!

自动安装过程概述

AI 可以利用网络上的软件包信息库,安装多种类型的网络客户端。AI 安装过程包含以下基本管理步骤:

  1. 将 Oracle Solaris 11 系统设置为 AI 服务器
  2. 创建安装服务(包括 AI 引导映像、安装清单和系统配置文件)来自动安装客户端
  3. 在客户端上测试安装服务
  4. 在生产中运行安装服务

AI 安装的前提条件:

  • 所有客户端均必须能够访问 DHCP 服务器。DHCP 通常提供客户端网络信息(IP 地址、子网掩码、路由器和 DNS 服务器)以及 AI 安装服务器的位置。虽然 DHCP 最初用于识别系统,但即使没有 DHCP 基础架构,也可以使用 AI。
  • 所有客户端都必须能访问 AI 安装服务器。AI 安装服务器和 DHCP 服务器可以在同一台机器中,也可在两台不同的机器上。AI 安装服务器必须具有一个静态 IP 地址、一个默认路由以及已安装的安装工具包。(命令 pkg list installadm 用于确认安装工具是否已安装。)
  • 所有客户端都必须能够访问映像包管理系统 (IPS) 软件包信息库,包括 Oracle 软件包信息库或本地软件信息库。

图 1 是 AI 引导过程的简化图。客户端通过网络引导时,将从 DHCP 服务器获取安装服务器的网络配置和位置。安装服务器向客户端提供一个 AI 引导映像。当客户端引导时,安装服务会寻找符合客户端条件的清单或脚本。(派生的清单脚本或单纯的“脚本”可询问正在运行的 AI 客户端,并根据答案生成定制清单。)找到匹配的清单或脚本时,客户端将根据这些配置进行安装。如果没有找到,就使用默认清单或脚本。

图 1 — 自动安装过程

图 1. AI 过程

使用系统配置文件可以在无人工干预的安装过程中微调系统。配置文件对清单起补充作用,通常包含安装后的具体配置(如配置用户名、用户密码、时区、主机名和 IP 地址等系统变量)。OS 软件包安装后,初次引导客户端时,Oracle Solaris 服务管理工具 (SMF) 将处理系统配置文件。

有关设置安装服务的详细信息, 请参阅 OTN 文章 “如何设置 Oracle Solaris 11 的自动安装服务”(本文作者 Isaac Rozenfeld 的另一篇文章)和 Oracle Solaris 文档集中的安装 Oracle Solaris 11 系统

如何创建安装服务

installadm 命令用于创建、列示和配置安装服务,包括客户端匹配条件的定义。create-service 子命令用来定义安装服务。下面的示例命令将使用下载的 ISO 文件创建一个服务,用以指定基于 x86 的 DHCP 客户端,客户端的起始地址是 192.168.1.210,总共 10 个地址。

# installadm create-service -n s11x86 -i 192.168.1.210 -c 10  \
-s /path/to/solaris-11-1111-ai-x86.iso

list 子命令列出已定义的安装服务,例如:
$ installadm list 
Service Name     Alias Of         Status  Arch  Image Path  
------------     --------         ------  ----  ----------  
default-i386     sol-11-i386-svc  on      x86   /export/images/soli386 
default-sparc    sol-11-sparc-svc on      Sparc /export/images/solsparc 
sol-11-i386-svc  -                on      x86   /export/images/soli386 
sol-11-sparc-svc -                on      Sparc /export/images/solsparc

list 子命令可以使用 -m 选项,显示每个服务可用的 AI 清单:

# installadm list -m -n my-service
Manifest      Status    Criteria
--------      ------    --------
manifest2               arch = i86pc
                        mem  = 4096 MB - unbounded
sparc_setup             arch = sun4v
new_default   Default   (Ignored: mem = 2048 MB - 4095 MB)
orig_default  Inactive  None

上面的示例为安装服务 my-service 定义了四个清单:

  • 非默认清单 (manifest2),包含架构和内存相关条件
  • 非默认脚本 (sparc_setup),包含架构条件
  • 默认清单 (new_default),包含已忽略的条件
  • 非默认清单 (orig_default),被标记为非活动,因为其中没有条件

AI 清单以 XML 格式储存,易于定制。下面的第一个命令导出与 s11x86 服务相关的默认安装清单。编辑导出的清单文件后,使用 update-manifest 子命令更新与服务相关联的清单:

# installadm export -n s11x86 -m orig_default > manifest.xml

[编辑 manifest.xml。]

# installadm update-manifest -n s11x86 -m orig_default -f manifest.xml

AI 清单可使用以下 XML 语法指定区域配置文件,从而指定创建区域时的配置信息:

<configuration type="zone" name="zone1" 
source="http://xyz/zone1/config.txt" />

另外,还可以这样指定一个本地文件:

<configuration type="zone" name="zone1"
source="file:///net/server/zone2/config.txt" />

如何创建清单

create-manifest 子命令让您可以指定条件(例如,架构、内存大小、MAC 地址等),为安装客户端确定应选择的清单或脚本。清单可以包含目标设备、分区信息、软件包列表和其他参数等信息。

以下 create-manifest 示例将清单 /export/mf.xml 添加到服务 svc1。随后,服务 svc1 将用于安装符合“MAC 地址等于 aa:bb:cc:dd:ee:ff”这一条件的客户端。

# installadm create-manifest -f /export/mf.xml -n svc1 \
-c MAC="aa:bb:cc:dd:ee:ff"

以下示例创建名为 s11 的清单,用于安装 zone1 或 zone2:

# installadm create-manifest -n s11 -f /tmp/zmanifest.xml  \
-c zonename="zone1 zone2"

如何创建系统配置文件

installadm list -p 选项显示安装服务器上可用的系统配置文件:

# installadm list -p
Service Name Profile
------------ -------
sparc2       myprofile.xml              
             myprofile2.xml
svc0817      profile3
svc0819      profile4.xml              
             newprofile
             foo.xml

create-profile 子命令定义系统配置文件。以下示例将构造一个名为 s11 的配置文件,此文件将在 zone1 安装过程中应用。

# installadm create-profile -n s11 -f /tmp/zprofile1.xml  \
-c zonename="zone1"

您可以通过交互方式创建一个系统配置文件,并保存以便用于后续安装:

# sysconfig create-profile -o sc-profile.xml

使用以下命令来验证系统配置文件是否符合默认 x86 安装服务。如果您修改了系统配置文件,那么最好执行验证。

# installadm validate -n default-i386 -P profile.xml

如何排除安装故障

如果客户端可以成功引导并下载安装文件,您会看到这样一条消息:

Automated Installation started
The progress of the Automated Installation will be output to the console 
Detailed logging is in the logfile at /system/volatile/install_log 
Press RETURN to get a login prompt at any time.

要监视进度,请以 root 身份使用口令 solaris 登录客户端,务请牢记,一旦 IPS 软件包安装开始,日志更新可能会出现延迟。

如果客户端安装失败,则需检查许多日志文件。首先,请检查客户端安装日志文件 /system/volatile/install_log 中的消息。客户端所用的 AI 清单位于文件 /system/volatile/ai.xml 中(对于派生的清单脚本,则在文件 manifest.xml 中)。

系统配置文件在 /system/volatile/profile/* 中。其他日志文件则位于 AI 服务器的 /var/ai/image-server/logs 目录之中。

调试标志也会在客户端系统上激活。对于 SPARC 客户端,应使用 Open Boot Prom (OBP) install_debug boot 参数:

ok> boot net:dhcp - install install_debug

在使用 GRUB 的 x86 客户端系统中, 将 install_debug=enable 添加到内核行引导条目。

请参考以下帮助页面:installadm(1M)ai_manifest(4)aimanifest(1M)sysconfig(1M)。

如何从 JumpStart 迁移

Oracle 提供的 js2ai 实用工具可帮助将 Oracle Solaris 10 JumpStart 规则、配置文件和 sysidcfg 文件转换成与 Oracle Solaris 11 自动安装程序兼容的格式。该实用工具将尽可能转换 JumpStart 关键字,生成 AI 清单和系统配置文件的 XML 语法,并支持进一步定制。该工具将尝试建立如下映射:

  • 将 JumpStart 规则映射到 AI 条件
  • 将 JumpStart 配置文件映射到 AI 清单
  • sysidcfg 文件映射到系统配置文件

以下命令用于转换 /export/jumpstart 下的整个 JumpStart 目录,将 sysidcfg 文件转换成系统配置文件,并生成用于规则和各相关配置文件的 AI 清单:

# js2ai -r -d /export/jumpstart

请参阅从 Oracle Solaris 10 JumpStart 迁移到 Oracle Solaris 11 自动安装程序 手册和 js2ai(1M) 手册页面。

如何创建引导环境

引导环境 (BE) 是 Oracle Solaris 11 操作系统的独立可引导实例。在更新系统之前创建 BE 总是一个不错的实践。如果更新发生任何问题,您可以回滚到之前的 BE。下面的示例创建名为 solaris-05032012 的 BE:

# beadm create solaris-05032012

如果有必要,在下次重新引导时可将其激活为活动 BE:

# beadm activate solaris-05032012

另请参见

下面是其他一些资源:

关于作者

在过去的 15 年里,Ginny Henningsen 一直以自由撰稿人的身份为高科技公司开发技术资料和文档。在此之前,Ginny 就职于 Sun Microsystems, Inc,曾在普鲁士王市(宾夕法尼亚州)和密尔沃基威(威斯康星州)担任系统工程师。Ginny 拥有卡内基-梅隆大学的学士学位以及维拉诺瓦大学的 MSCS 学位。

修订版 1.0,2012 年 6 月 15 日

要了解 Oracle 所有技术中与 sysadmin 有关的内容,请在 FacebookTwitter 上关注 OTN Systems。