js2ai [-h | --version]
js2ai -r | -p profile [-d jsdir ] [-D destdir] [-lSv]
js2ai -s [-d jsdir] [-D destdir] [-Sv]
js2ai -V manifest
js2ai 是用于将 Oracle Solaris 10 JumpStart rules、配置文件和 syscfg 配置文件转换为与自动化安装程序 (Automated Installer, AI) 兼容的格式的实用程序。该实用程序会尽最大努力转换那些可转换到 AI 上下文中的 JumpStart 关键字。尽管此转换过程并不为 JumpStart 创建完整的一对一对等项,但是它确实可以提供可用作模板的 AI 清单和系统配置文件条目,之后可借助此模板根据从 JumpStart 配置文件收集的信息创建完整的 AI 配置设置。
使用 js2ai 可执行以下操作:
处理当前工作目录中的 rules 文件和关联配置文件。
处理指定目录中的 rules 文件和关联配置文件。
处理特定配置文件或 sysidcfg 文件。
将生成的输出文件定向到特定目录。有关 js2ai 输出文件的更多信息,请参见“示例”和“文件”部分。
|
js2ai 不支持的 JumpStart 规则关键字:
any installed disksize osname domainname probe hostname totaldisk
|
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 工具执行以下步骤来确定要用于根磁盘的设备。
|
在配置文件转换期间如何转换 any 设备
js2ai 工具执行以下步骤来确定指定了 any 关键字时要使用的设备。
|
在配置文件转换期间如何确定 ZFS 根池
js2ai 工具执行以下步骤来确定要用于 ZFS 根池的设备。确定 ZFS 根池后,如果之后遇到的定义与已确定的 ZFS 根池发生冲突,会将这些定义标记为错误。
|
|
js2ai 命令包含以下选项。“示例”部分对这些选项的用法进行了说明。
显示用法帮助消息。
显示 js2ai 实用程序的版本号。
指定 rules 和配置文件或 sysidcfg 文件的位置。
指定输出文件的位置。
在 JumpStart 配置文件中搜索 package 关键字值的映像包管理系统 (Image Packaging System, IPS) 等效项时,会搜索在主机系统中安装的 IPS 软件包,而不是 IPS 软件包系统信息库中的软件包。
转换指定的 JumpStart 配置文件并为已处理的配置文件生成清单。在这种情况下,无需或不会生成条件文件。
转换规则和关联的配置文件并为已处理的每个配置文件生成清单。
处理 sysidcfg 文件并将结果输出至 sc_profile.xml。
跳过验证。
提供有关在处理期间发生的操作的详细信息。
验证指定的 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 and/or warnings occurred. For details see ./js2ai.log
对于 js2ai 发现有错误的每个文件,报告中将包含一个条目。要实现即使没有错误也生成错误报告,请指定 –v 或 –-verbose。
该报告可说明各个文件中错误的类型。定义了 5 个错误类型:警告、处理错误、不支持的项、转换错误和验证错误。
不需要更正这些消息中的项。例如,您可能会收到一条警告消息,说明未提供主机名或 root 口令等信息,将使用缺省值。
这类错误表示阻止 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 之间不存在一对一转换。以下步骤说明了转换的常规执行过程。
js2ai 实用程序尝试标记它遇到的任何错误,但 js2ai 假定转换的规则、配置文件和 sysidcfg 文件有效。
将包含 rules、配置文件和 syscfg 配置文件的 JumpStart 配置目录复制到安装了 install/installadm 软件包的 Oracle Solaris 11 系统。
在第 2 步复制到 Oracle Solaris 11 系统的 JumpStart 配置目录下,运行 js2ai 转换工具。
# js2ai -rS
该命令对 rules 文件和 rules 文件引用的配置文件执行转换操作。根据 AI 客户机置备清单 /usr/share/auto_install/manifest/default.xml 处理 rules 文件中引用的每个配置文件。此步骤将为 JumpStart rules 文件中指定的每个配置文件创建一个名为 AI_profile 的目录。对于转换的配置文件,AI_profile 目录会包含一个或多个 profile_name${arch}.xml 形式的 AI 清单。有关更多信息,请参见“文件”部分。
–S 选项跳过验证环节。验证在第 5 步执行。
如果输出以下消息 “Successfully completed conversion”(成功完成转换),请跳到第 5 步。否则,检查 js2ai.log 文件并执行以下步骤:
更正所有处理错误。
从 rules 和配置文件中删除任何列为“不支持的项”的行。
如果可能,检查并更正转换错误。否则删除导致错误的行。
检查所有警告消息并确保无需做任何更正。
重复执行第 3 步,直到不再报告处理错误、不支持的项和转换错误。
在不使用 –S 选项的情况下重新运行 js2ai。
# js2ai -r
如果任何处理的配置文件发生验证错误,必须手动更正生成的 AI 清单。检查 js2ai.log 文件以了解失败详细信息。有关 AI 清单的信息,请参见 AI 文档。
转换与该 JumpStart 配置关联的任何 sysidcfg 文件。
对于每个 sysidcfg 文件,执行以下命令:
# js2ai -sS -d sysidcfgdir
对于所处理的每个 sysidcfg 文件,此步骤将在调用 js2ai 命令的目录中创建一个名为 sc_profile.xml 的 AI 系统配置文件。可使用 –D 选项为 sc_profile.xml 文件指定其他目录。
与配置文件转换不同,js2ai sysidcfg 转换将始终生成关于用户帐户的警告。
sysidcfg:line x:WARNING: Oracle Solaris 11 uses roles instead of root user. An admin user with root role privileges will need to be defined in order to access the system in multi-user mode. The necessary xml structures have been added to sc_profile.xml as a comment. Edit sc_profile.xml to perform the necessary modifications to define the admin user.
此警告与 js2ai 无法仅通过 root_passwd 关键字生成必需数据结构有关。将需要在转换过程结束时执行手动步骤来更正此情况。
此外,还可能生成关于即将禁用中性链路名称支持的警告消息。
sysidcfg:line x:WARNING: In order to support the direct translation of the sysidcfg interface 'e1000g', Oracle Solaris 11 neutral link name support will be disabled. If you wish to use neutral link names, change the interface name specified in the sysidcfg file to a 'netx' style interface name or edit the resulting sc_profile.xml file.
如果您希望使用旧样式链路名称,则不需要执行任何操作。在大多数情况下,接口将与它们在 Oracle Solaris 10 中所做的一样。但是不能保证将始终这样。
检查结果:
更正所有处理错误。
从作为“不受支持的项”列出的 sysidcfg 文件中删除任何行。
如果可能,检查并更正转换错误。否则删除导致错误的行。
检查所有警告消息并确保无需做任何更正。
重复执行第 6 步,直到不再报告处理错误、不支持的项和转换错误。
在不使用 –S 选项的情况下重新运行 js2ai。
# js2ai -s -d sysidcfgdir
如果处理的任何 sysidcfg 文件出现任何验证错误,则必须手动更正生成的 AI 系统配置文件。检查 js2ai.log 文件以了解有关故障的详细信息。有关系统配置文件的信息,请参见 AI 文档。
编辑 js2ai 生成的 sc_profile.xml 文件,以向 system/config-user 结构中添加用户帐户信息。如果您的 sysidcfg 文件中包含了 root_passwd 关键字,则 js2ai 将生成如下所示的 system/config-user 结构:
<service name="system/config-user" type="service" version="1"> <instance enabled="true" name="default"> <!-- Configures user account as follows: * User account name 'jack' * password 'jack' * GID 10 * UID 101 * root role * bash shell --> <!-- <property_group name="user_account" type="application"> <propval name="login" type="astring" value="jack"/> <propval name="password" type="astring" value="9Nd/cwBcNWFZg"/> <propval name="description" type="astring" value="default_user"/> <propval name="shell" type="astring" value="/usr/bin/bash"/> <propval name="gid" type="astring" value="10"/> <propval name="uid" type="astring" value="101"/> <propval name="type" type="astring" value="normal"/> <propval name="roles" type="astring" value="root"/> <propval name="profiles" type="astring" value="System Administrator"/> </property_group> --> <property_group name="root_account" type="application"> <propval name="password" type="astring" value="{your_root_passwd}"/> <propval name="type" type="astring" value="role"/> </property_group> </instance> </service>
在 XML 中,注释以 <!-- and ends in --> 开头。要定义支持 Oracle Solaris 11 所需的用户,请删除 user_account 结构周围的 XML 注释标记。然后根据需要修改该结构,以创建将具有 root 角色特权的用户。如果未指定 root_password 关键字,还会将 root_account 属性组结构注释掉,您将需要对其取消注释并更新 root 口令字段。
js2ai 转换过程完成。对生成的条件、AI 清单和系统配置文件执行手动验证。Oracle Solaris 11 安装所需的磁盘空间与 Oracle Solaris 10 安装所需的磁盘空间不同。确保在 AI 清单中分配的磁盘空间符合 Oracle Solaris 11 的要求。
配置 AI 以使用新生成的文件。将新生成的条件、AI 清单和系统配置文件添加到现有的 AI 安装服务。
使用带有 create-manifest 子命令的 installadm 命令添加每个 AI 清单以及用于选择该清单的条件。每个客户机只能使用一个 AI 清单。
# installadm create-manifest -n svcname \ -f filename -m manifest \ -C criteriafile
使用 create-profile 子命令,为每个配置文件添加用于选择该配置文件的条件。每个客户机可以使用一个或多个系统配置文件。
# installadm create-profile -n svcname \ -f filename -p profile \ -C criteriafile
有关配置 AI 安装服务的信息,请参见 AI 文档和 installadm(1M) 手册页。
以下命令处理当前目录中的 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
将返回以下退出值:
所有文件均已成功处理。
出现错误。
该目录包含与特定配置文件关联的转换为新 AI 语法的所有对应文件。
由于转换配置文件而创建的清单文件。${arch} 可以为以下三个值之一:sparc、x86 或 generic。${profile}.generic.xml 形式的清单文件可用于安装 x86 和 SPARC 系统。
生成的 criteria-rule.xml 文件对应于 rules 文件中的规则。 rule 是基于该规则在 rules 文件中的位置的规则编号。此后,可以在 installadm 命令中将该条件文件与 –C 选项一起使用。
由于可以有多个规则指定同一配置文件,因此每个目录中可能存在多个条件文件,但每个输出目录中只存在 ${profile}.${arch}.xml 文件的一个实例。
该文件包含在处理期间发生的意外状况的栈跟踪。通常不创建该文件。
该日志文件记录了处理的文件和在处理期间发现的所有错误。
此文件是使用 –s 选项转换 sysidcfg 文件时生成的 SMF 系统配置文件。
有关下列属性的说明,请参见 attributes(5):
|
从 Oracle Solaris 10 JumpStart 转换至 Oracle Solaris 11.2 自动化安装程序