JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 11 安装手册页     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

系统管理命令

aimanifest(1M)

distro_const(1M)

installadm(1M)

js2ai(1M)

文件格式

js2ai

- 转换 JumpStart 规则和配置文件以用于自动化安装程序 (Automated Installer, AI)。

用法概要

js2ai [-h | --version]
js2ai -r | -p profile_name [-d jumpstart_dir]
    [-D destination_dir] [-lSv]
js2ai -s [-d jumpstart_dir]
    [-D destination_dir] [-Sv]
js2ai -V manifest

描述

js2ai 是一个实用程序,用于将 Oracle Solaris 10 JumpStart rules、配置文件和 syscfg 配置文件转换为与自动化安装程序 (Automated Installer, AI) 兼容的格式。此实用程序“尽力”将那些可以转换的 JumpStart 关键字转换为 AI 上下文。尽管此转换过程并不为 JumpStart 创建完整的一对一对等项,但是它确实可以提供可用作模板的 AI 清单和系统配置文件条目,之后可借助此模板根据从 JumpStart 配置文件收集的信息创建完整的 AI 配置设置。

使用 js2ai 可以实现以下目的:

转换规则关键字

表 1 JumpStart 规则关键字转换

JumpStart 规则关键字
AI 条件关键字
arch
cpu
hostaddress
ipv4
karch
arch
memsize
mem
model
platform
network
ipv4

不受 js2ai 支持的 JumpStart 规则关键字:

any             installed
disksize        osname
domainname      probe
hostname        totaldisk

转换配置文件关键字

表 2 JumpStart 配置文件关键字

JumpStart 配置文件关键字
附注
boot_device
如果事先未通过 root_device 关键字进行设置,rootdisk 将设置为指定的设备。
fdisk
disk_name 的值必须为设备。不支持 all 设备。fdisk 类型必须为 solaris。不支持大小为 0 或 delete

如果 partitioningdefault 且尚未设置 rootdisk,则遇到的第一个 fdisk solaris 分区将用作 rootdisk

filesys
当指定的挂载点为 / 或 swap 时,支持本地文件系统和镜像文件系统。

不执行大小验证。可能需要调整生成的 AI 清单中指定的大小才能使用此清单实现成功安装。

install_type
仅支持值 initial_install
locale(语言环境)
不执行转换。请确保指定的语言环境在 Oracle Solaris 11 中受支持。
package(软件包)
尝试将指定的软件包转换为其 Oracle Solaris 11 等效项。不支持指定软件包的位置。软件包查找可能会花费大量的时间。如果配置文件包含的软件包列表很长,则在转换过程中可能需要使用 --local 标志。
partitioning
支持的类型是 defaultexplicit。与 JumpStart 不同,在指定 partitioning default 时,仅使用 js2ai 可识别的磁盘。如果任何关键字中都未指定磁盘,则生成的配置文件将通知 AI 选择要使用的磁盘。
pool(池)
如果在配置文件中指定了池,则使用指定的设备创建 ZFS 根池。在确定用于 ZFS 根池的设备时,pool 关键字将取代所有其他关键字。

不执行对池大小、交换大小或转储大小的验证。可能需要调整生成的 AI 清单中的这些大小才能使用此清单实现成功安装。

root_device
rootdisk 设置为指定的设备。
system_type
仅支持值 standalone
usedisk
在转换期间,可以使用指定的设备解析 any rootdisk 设备。在未镜像 ZFS 根池时,不用于此目的任何指定设备都将添加到该池。

不受 js2ai 支持的 JumpStart 配置文件关键字:

archive_location       geo
backup_media           layout_constraint
bootenv                local_customization
client_arch            metabd
client_root            no_master_check
client_swap            no_content_check
cluster                num_clients
dontuse                patch
forced_deployment

如何在配置文件转换期间确定系统的根磁盘

由于在配置文件转换期间 js2ai 无法访问配置文件所引用的实际系统,因此 js2ai 将在转换期间使用尽可能与 JumpStart 匹配的进程来尝试确定根磁盘。

js2ai 工具执行以下步骤以确定用于根磁盘的设备。

阶段
操作
1
如果在配置文件中指定了 root_device 关键字,则 js2ai 会将 rootdisk 设置为分片所在的设备。
2
如果未设置 rootdisk 但在配置文件中指定了 boot_device 关键字,则 js2airootdisk 设置为引导设备。
3
如果未设置 rootdisk 但指定了 partitioning default,且遇到了 solarisfdisk 条目,则 js2airootdisk 设置为指定的 disk_name
4
如果未设置 rootdisk 但在配置文件中指定了 filesys cwtxdysz size / 条目,则 js2airootdisk 设置为该条目中指定的 cwtxdysz 磁盘。
5
如果未设置 rootdisk 但在配置文件中指定了 usedisk disk_name 条目,则 js2airootdisk 设置为该条目中指定的 disk_name 磁盘。
6
如果未设置 rootdisk 但在配置文件中遇到以下规范(其中 size 不为 0 或 deletedisk_name 不为 all),则 rootdisk 将设置为该 disk_name
fdisk disk_name solaris size
7
如果未设置 rootdisk,则将设备指定为 rootdisk 的任何实例都会生成转换错误。

如何在配置文件转换期间转换 any 设备

js2ai 工具执行以下步骤以确定在指定了 any 关键字时要使用的设备。

阶段
操作
1
如果指定了 any 设备且指定了关键字操作(非镜像池或具有 / 挂载点的 filesys),则在设置了 rootdiskany 设备将设置为 rootdisk
2
如果 any 设备尚未转换且配置文件中存在 usedisk 语句,则 any 设备将设置为由 usedisk 语句指定的设备。
3
如果 any 设备尚未转换且指定了 any 设备的操作导致创建 ZFS 根池,则 AI 将选择该设备。在指定镜像池时,这一点并不适用。

如何在配置文件转换期间确定 ZFS 根池

js2ai 工具执行以下步骤以确定用于 ZFS 根池的设备。在确定 ZFS 根池后,如果遇到的后续定义与已经确定的 ZFS 根池相冲突,则它们将标记为错误。

阶段
操作
1
如果配置文件指定了 pool 关键字,则 js2ai 将 ZFS 根池设置为由 pool 关键字指定的设备。
2
如果尚未确定 ZFS 根池但配置文件指定了具有 / 挂载点的 filesys,则使用指定设备创建 ZFS 根池。
3
如果尚未确定 ZFS 根池但已处理配置文件中的所有关键字,且设置了 rootdisk,则使用 rootdisk 设备创建 ZFS 根池。
4
如果尚未确定 ZFS 根池且分区类型为 default,则 AI 将选择要用于 ZFS 根池的设备。
5
如果尚未确定 ZFS 根池且在处理期间未出现错误,则 AI 将选择要用于 ZFS 根池的设备。
6
如果 ZFS 根池不是镜像池,且指定的一个或多个 usedisk 设备尚未用于 rootdisk any 设备转换,则这些磁盘将添加到 ZFS 根池。

转换 sysidcfg 关键字

表 3 JumpStart sysidcfg 关键字

sysidcfg 关键字
附注
keyboard
不执行转换。请确保在 Oracle Solaris 11 中支持 sysidcfg 文件中指定的键盘。
name_service
支持的值为 NoneDNSNIS LDAP。NIS+ 名称服务将转换为 NIS。
network_interface
仅支持单个接口。对 PRIMARY 的支持有限。仅处理在 sysidcfg 文件中遇到的第一个接口。
root_password
不需要进行转换。
security_policy
支持的值如下: None
service_profile
支持的值如下: limited_net
system_locale
不执行转换。请确保在 Oracle Solaris 11 中支持 sysidcfg 文件中指定的语言环境。
terminal
不执行转换。请确保在 Oracle Solaris 11 中支持 sysidcfg 文件中指定的终端类型。
timeserver
支持的值如下: localhost
timezone
不需要进行转换。

不受 js2ai 支持的 JumpStart sysidcfg 关键字:

nfs4_domain

选项

js2ai 命令具有以下选项。在“示例”部分中对这些选项的作用进行了说明。

-h--help

显示用法帮助消息。

--version

显示 js2ai 实用程序的版本号。

-d jumpstart_dir, - -dir jumpstart_dir

指定 rules 以及配置文件或 sysidcfg 文件的位置。

-D destination_dir, - -dest destination_dir

指定输出文件的位置。

-l, --local

在 JumpStart 配置文件中搜索 package 关键字值的映像包管理系统 (Image Packaging System, IPS) 等效项时,会搜索在主机系统上安装的 IPS 软件包而不是 IPS 软件包系统信息库中的软件包。

-p profile_name, - -profile profile_name

转换指定的 JumpStart 配置文件并为所处理的配置文件生成清单。在这种情况下,不需要或不生成条件文件。

-r, --rule

转换规则和关联的配置文件并为所处理的每个配置文件生成清单。

-s, --sysidcfg

处理 sysidcfg 文件并将结果输出到 sc_profile.xml

-S, --skip

跳过验证。

-v--verbose

提供有关在处理期间发生的操作的详细信息。

-V filename

验证指定的 AI 清单文件或 SMF 系统配置文件。不支持 AI 条件验证。

错误报告

在转换期间出现一个或多个错误时,js2ai 工具将生成错误报告。

# js2ai -r
                    Process  Unsupported  Conversion  Validation
Name      Warnings  Errors   Items        Errors      Errors
--------  --------  -------  -----------  ----------  ----------
rules            0        0            2           0           -
profile1         0        0            0           2           1

Conversion completed. One or more failures occurred.
For errors see ./js2ai.log

对于 js2ai 在其中遇到错误的每个文件,该报告中都包含一个条目。要生成错误报告(即使未出现错误),请指定 - v--verbose

该报告将告知您在哪些文件中出现了哪种类型的错误。定义了以下五种错误类型:警告、处理错误、不支持的项、转换错误和验证错误。

警告

不需要更正这些消息中的项。例如,您可能收到一条警告消息,指出未提供诸如主机名或超级用户口令之类的信息,将使用缺省值。

处理错误

这些错误表示出现了阻止 js2ai 处理文件或文件中某行的问题。当文件存在语法错误时,通常就会发生处理错误。

不支持的项

这些项是指 js2ai 不支持的行。更改与关键字关联的值可能会消除此错误。

转换错误

这些错误表示出现了阻止 js2ai 处理行的情况。应该手动更正这些错误,或者从文件中删除有问题的行。

验证错误

这些错误是指根据 AI 所用的架构定义验证生成的清单时出现的错误。必须先更正这些错误,AI 才能使用清单。

js2ai.log 文件指出了在哪个行上出现了哪个错误。

# cat js2ai.log
rules: line 4: unsupported keyword: disksize
rules: line 4: unsupported keyword: installed
net924_sun4c: line 4: unsupported keyword: cluster
net924_sun4c: line 5: unsupported keyword: num_clients
net924_sun4c: line 6: unsupported keyword: client_swap
net924_sun4c: line 7: unsupported keyword: client_arch
upgrade: line 1: unsupported value for 'install_type' specified: upgrade

如果出现清单验证错误,js2ai.log 文件将提供一个指向包含验证错误的日志文件的指针,如以下示例所示:

Validation Errors:
    profile1: manifest validation of
    ./AI_profile1/profile1.xml failed.
    For details see ./AI_profile1/profile_validation.log

转换策略

规则和配置文件转换的建议策略

不存在 JumpStart 和 AI 之间的一对一转换。以下步骤提供了执行转换的一般过程。

  1. js2ai 实用程序尝试标记它遇到的任何错误,但是 js2ai 假定所转换的规则、配置文件和 sysidcfg 文件是有效的。

  2. rules、配置文件和 syscfg 配置文件的 JumpStart 配置目录复制到已安装 install/installadm 软件包的 Oracle Solaris 11 系统。

  3. 在步骤 2 中复制到 Oracle Solaris 11 系统的 JumpStart 配置目录中,运行 js2ai 转换工具。

    # js2ai -rS

    此命令将对 rules 文件和 rules 文件所引用的配置文件执行转换操作。将根据 AI 客户机置备清单 /usr/share/auto_install/manifest/default.xml 处理 rules 文件中引用的每个配置文件。此步骤将为 JumpStart rules 文件中指定的每个配置文件创建一个名为 AI_profile_name 的目录。AI_profile_name 目录包含已转换配置文件的一个或多个 AI 清单,其格式为 profile_name${arch}.xml。有关更多信息,请参见“文件”部分。

    -S 选项用于跳过验证序列。验证在步骤 5 中执行。

  4. 如果输出了消息“成功完成转换”,请跳到步骤 5。否则,请检查 js2ai.log 文件并按以下步骤操作:

    1. 更正任何处理错误。

    2. rules 和配置文件中删除作为不支持的项列出的任何行。

    3. 检查转换错误并更正错误(如果可能)。否则,请删除导致错误的行。

    4. 检查任何警告消息并确保不需要进行更正。

    5. 重复步骤 3,直到不再报告处理错误、不支持的项和转换错误。

  5. 不使用 -S 选项重新运行 js2ai

    # js2ai -r

    如果已处理的任何配置文件出现任何验证错误,则必须手动更正生成的 AI 清单。检查 js2ai.log 文件以了解有关故障的详细信息。有关 AI 清单的信息,请参见 AI 文档。

  6. 转换与此 JumpStart 配置关联的任何 sysidcfg 文件。

    对于每个 sysidcfg 文件,执行以下命令:

    # js2ai -sS -d sysidcfg_dir

    对于所处理的每个 sysidcfg 文件,此步骤将在调用 js2ai 命令的目录中创建一个名为 sc_profile.xml 的 AI 系统配置文件。可使用 -D 选项为 sc_profile.xml 文件指定其他目录。

  7. 如果输出了消息“成功完成转换”,请跳到步骤 8。否则,请检查 js2ai.log 文件并按以下步骤操作:

    1. 更正任何处理错误。

    2. sysidcfg 文件中删除作为不支持的项列出的任何行。

    3. 检查转换错误并更正错误(如果可能)。否则,请删除导致错误的行。

    4. 检查任何警告消息并确保不需要进行更正。

    5. 重复步骤 6,直到不再报告处理错误、不支持的项和转换错误。

  8. 不使用 -S 选项重新运行 js2ai

    # js2ai -s -d sysidcfg_dir

    如果处理的任何 sysidcfg 文件出现任何验证错误,则必须手动更正生成的 AI 系统配置文件。检查 js2ai.log 文件以了解有关故障的详细信息。有关系统配置文件的信息,请参见 AI 文档。

  9. js2ai 转换过程已完成。对生成的条件、AI 清单和系统配置文件执行手动验证。Oracle Solaris 11 安装的磁盘空间要求与 Oracle Solaris 10 安装的磁盘空间要求不同。请确保在 AI 清单中分配的磁盘空间满足 Oracle Solaris 11 的要求。

  10. 配置 AI 以使用新生成的文件。将新生成的条件、AI 清单和系统配置文件添加到现有的 AI 安装服务。

    使用带有 create-manifest 子命令的 installadm 命令添加每个 AI 清单以及用于选择该清单的条件。每个客户机只能使用一个 AI 清单。

    # installadm create-manifest -n ai_service_name \
    -f manifest_file -m manifest_name \
    -C criteria_file

    使用 create-profile 子命令添加每个配置文件以及用于选择该配置文件的条件。每个客户机可以使用一个或多个系统配置文件。

    # installadm create-profile -n ai_service_name \
    -f profile_file -p profile_name \
    -C criteria_file

    有关配置 AI 安装服务的信息,请参见 AI 文档和 installadm(1M) 手册页。

示例

示例 1 处理 JumpStart 配置

以下命令处理当前目录中的 JumpStart 规则和配置文件。输出也放置在此目录中。

# js2ai -r

示例 2 处理特定的 JumpStart 目录

以下命令将处理指定目录中的 JumpStart 规则和配置文件,并将输出文件放置在同一目录中。

# js2ai -r -d /export/jumpstart

有关输出文件的更多信息,请参见示例 4 和“文件”部分。

示例 3 处理特定的 JumpStart 目录和单独的目标目录中的配置文件

以下命令处理 /export/jumpstart 目录中的 JumpStart rules 和配置文件,并将输出文件放置在 /export/output 中。

# js2ai -p profile1 -d /export/jumpstart -D /export/output

示例 4 指定的规则及其配置文件的示例输入和生成的输出

规则:

arch sparc && karch sun4u && \
    model 'SUNW,Serverblade1'  -   profile    -

配置文件:

install_type    initial_install
pool mypool auto auto auto c1t0d0s0

转换命令:

# js2ai -r -d /jumpstart -D /tmp/output

输出文件:

/tmp/output/AI_profile/profile.x86.xml
/tmp/output/AI_profile/profile.sparc.xml
/tmp/output/AI_profile/criteria-1.xml

将创建两个清单,一个用于 SPARC,另一个用于 x86,即使 rules 文件将 CPU 类型指定为 SPARC 也是如此。在转换过程中,将彼此独立地处理规则和配置文件。

示例 5 将生成的文件添加到 AI 安装服务

此示例使用在示例 4 中生成的文件将清单和条件添加到现有的服务。

文件:

/tmp/output/AI_profile/profile.sparc.xml
/tmp/output/AI_profile/criteria-1.xml

installadm 命令:

# installadm create-manifest -n svc-name \
-f /tmp/output/AI_profile/profile.sparc.xml \
-m sparc_profile \
-C /tmp/output/AI_profile/criteria-1.xml

示例 6 处理 sysidcfg 文件

以下命令处理当前目录中的 sysidcfg 文件,并将生成的 SMF 系统配置文件作为 sc_profile.xml 输出到同一目录中。

# js2ai -s

退出状态

将返回以下退出值:

0

所有文件都已成功处理。

0

出现错误。

文件

output_directory/AI_${ profile_name}

包含已转换为与配置文件关联的新 AI 语法的所有对应文件的目录。

output_directory/AI_${ profile_name}.${arch}.xml

作为转换配置文件的结果而创建的清单文件。 ${arch} 可以是以下三个值之一: sparcx86generic。格式为 ${profile_name}.generic.xml 的清单文件可以同时用于安装 x86 和 SPARC 系统。

output_directory/AI_${ profile_name}/criteria-rule_number.xml

生成的 criteria-rule_number.xml 文件与 rules 文件中的规则相对应,rule_number 是基于其在 rules 文件中位置的规则编号。然后可以将此条件文件与 installadm 命令的 -C 选项一起使用。

由于多个规则可以指定同一配置文件,因此每个目录中可以存在多个条件文件,但是每个输出目录中应仅存在 ${profile_name}.${arch}.xml 文件的一个实例。


注 - 如果使用了 -p 选项,则不为所处理的配置文件生成条件文件。仅当与 -r 选项一起使用时才生成条件文件。


output_directory/js2ai.err

此文件包含在处理期间出现的意外情况的栈跟踪。通常不创建此文件。

output_directory/js2ai.log

此文件包含所处理文件以及在处理期间发现的任何错误的日志。

output_directory/sc_profile.xml

此文件是使用 -s 选项转换 sysidcfg 文件时生成的 SMF 系统配置文件。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
install/js2ai
接口稳定性
Uncommitted(未确定)

另请参见

installadm(1M)pkg(1)

《从 Oracle Solaris 10 JumpStart 转换至 Oracle Solaris 11 自动化安装程序》

《安装 Oracle Solaris 11 系统》中的第 III 部分, "使用安装服务器安装"