从 Oracle® Solaris 10 JumpStart 转换至 Oracle Solaris 11.2 自动化安装程序

退出打印视图

更新时间: 2014 年 7 月
 
 

使用 js2ai 转换规则和配置文件

本节显示了使用单个 js2ai 命令转换 JumpStart rules 文件以及该 rules 文件引用的所有配置文件。缺省情况下,每个转换的配置文件都将输出到名为 AI_profile-filename 的目录。用于选择该配置文件的规则作为 AI 条件文件输出到同一个目录中。

JumpStart Rules 文件和配置文件示例

以下示例使用以下 rules 文件:

# The following rule matches only one system:

hostname sample_host    - fdisk.profile         -

# The following rule matches only one system:

hostaddress 10.6.68.127 - mirrorfilesys.profile -

# The following rule matches any system that is on the 924.222.43.0 network:

network 924.222.43.0    - rootdisk.profile      -

# The following rule matches all x86 systems:

arch i386               - mirrorpool.profile    -

fdisk.profile 文件具有以下内容:

install_type initial_install
system_type server
root_device c1t0d0s0
usedisk c1t0d0
fdisk rootdisk solaris all
partitioning explicit
filesys rootdisk.s1 5000 swap
filesys rootdisk.s0 10000 /
cluster SUNWCall

mirrorfilesys.profile 文件具有以下内容:

install_type initial_install
partitioning default
filesys mirror c6t0d0s0 c6t1d0s0 60048 /
cluster SUNWCuser

mirrorpool.profile 文件具有以下内容:

install_type initial_install
partitioning default
pool newpool auto auto auto mirror any any
cluster SUNWCuser

rootdisk.profile 文件具有以下内容:

install_type initial_install
partitioning explicit
filesys rootdisk.s0 15000 /
filesys rootdisk.s1 1000 swap
cluster SUNWCall

使用 js2ai 处理 rules 文件以及关联的配置文件

使用以下命令处理该 rules 文件。在错误报告中,验证错误将显示为连字符,因为没有执行验证。–S 选项禁止了验证。

# js2ai -rS
                                Process  Unsupported  Conversion  Validation
Name                  Warnings  Errors   Items        Errors      Errors
-------------------   --------  -------  -----------  ----------  ----------
rules                        0        0            1           0           -
fdisk.profile                0        0            2           0           -
mirrorfilesys.profile        0        0            2           0           -
mirrorpool.profile           0        0            1           1           -
rootdisk.profile             0        0            1           2           -

Conversion completed. One or more failures and/or warnings occurred.
For errors see js2ai.log
# cat js2ai.log
rules:line 3:UNSUPPORTED: unsupported keyword: hostname
fdisk.profile:line 2:UNSUPPORTED: unsupported value for 'system_type' specified: server
fdisk.profile:line 9:UNSUPPORTED: unsupported keyword: cluster
mirrorfilesys.profile:line 3:UNSUPPORTED: unsupported mount point of 'unnamed' specified,
mount points other than '/' and 'swap' are not supported
mirrorfilesys.profile:line 4:UNSUPPORTED: unsupported keyword: cluster
mirrorpool.profile:line 3:CONVERSION: unable to convert 'any' device to physical device. Replace 'any' 
with actual device name
mirrorpool.profile:line 4:UNSUPPORTED: unsupported keyword: cluster
rootdisk.profile:line 3:CONVERSION: unable to convert 'rootdisk.s0'.  Replace'rootdisk.' with actual
device name
rootdisk.profile:line 4:CONVERSION: unable to convert 'rootdisk.s1'.  Replace'rootdisk.' with actual
device name
rootdisk.profile:line 5:UNSUPPORTED: unsupported keyword: cluster

输出存储在名为 AI_profile-filename 的目录中。通过 JumpStart 规则创建的 AI 条件文件将针对规则在 rules 文件中的位置命名。AI 清单命名为 profile-filename.arch.xml,其中 archgenericx86sparc

# ls AI_*
AI_fdisk.profile:
fdisk.profile.x86.xml

AI_mirrorfilesys.profile:
criteria-2.xml      mirrorfilesys.profile.generic.xml

AI_mirrorpool.profile:
criteria-2.xml      mirrorpool.profile.generic.xml

AI_rootdisk.profile:
criteria-3.xml      rootdisk.profile.generic.xml

替换 hostname 关键字

日志文件报告不支持将 JumpStart 规则关键字 hostname 作为 AI 条件关键字来选择 AI 清单。hostname 关键字指定哪些客户机应使用 fdisk.profile 配置文件。由于 hostname 不是选择 AI 清单所支持的关键字,因此新的 AI_fdisk.profile 目录不包含 AI 条件文件。

您可以在 rules 文件中将 hostname 更改为 hostaddress 来修复此问题。

您还可以创建指定 MAC 地址或 IP 地址来标识 hostname 系统的 AI 条件文件来修复此问题。例如,如果 0:14:4F:20:53:97sample_host 的 MAC 地址,则以下条件文件等效于 JumpStart 规则 hostname sample_host

<?xml version="1.0" encoding="utf-8"?>
<ai_criteria_manifest>
  <ai_criteria name="mac">
    <value>0:14:4F:20:53:97</value>
  </ai_criteria>
</ai_criteria_manifest>

要查找系统的 MAC 地址,请使用 dladm 命令,如 dladm(1M) 手册页中所述。

对于 JumpStart 规则 hostaddress 10.6.68.127js2ai 命令自动创建 AI 条件文件 AI_mirrorfilesys.profile/criteria-2.xml,并使用 AI ipv4 关键字替换 JumpStart hostaddress 关键字:

<?xml version="1.0" encoding="utf-8"?>
<ai_criteria_manifest>
  <ai_criteria name="ipv4">
    <value>
      10.6.68.127
    </value>
  </ai_criteria>
</ai_criteria_manifest>

对于 JumpStart 规则 network 924.222.43.0js2ai 命令自动创建 AI 条件文件 AI_rootdisk.profile/criteria-3.xml,并基于给定的网络地址指定 IP 地址的范围:

<?xml version="1.0" encoding="utf-8"?>
<ai_criteria_manifest>
  <ai_criteria name="ipv4">
    <range>
      924.222.43.0 924.222.43.255
    </range>
  </ai_criteria>
</ai_criteria_manifest>

对于 JumpStart 规则 arch i386js2ai 命令自动创建 AI 条件文件 AI_mirrorpool.profile/criteria-4.xml,并使用 AI cpu 关键字替换 JumpStart arch 关键字:

<?xml version="1.0" encoding="utf-8"?>
<ai_criteria_manifest>
  <ai_criteria name="cpu">
    <value>
      i386
    </value>
  </ai_criteria>
</ai_criteria_manifest>

更正 AI 清单文件

js2ai 命令通常会为每个 JumpStart 配置文件创建 AI 清单(即使报告错误)。本节介绍如何处理某些常见错误,以便输出 AI 清单更加完整。

示例 2-4  更正 fdisk.profile 错误

js2ai 命令显示 fdisk.profile JumpStart 配置文件的以下错误:

fdisk.profile:line 2:UNSUPPORTED: unsupported value for 'system_type' specified: server
fdisk.profile:line 9:UNSUPPORTED: unsupported keyword: cluster

忽略这两行,它们不会影响输出 AI 清单。如果想要转换过程中不生成这些错误消息,可以删除这两行。然后,fdisk.profile 文件具有以下内容:

install_type initial_install
root_device c1t0d0s0
usedisk c1t0d0
fdisk rootdisk solaris all
partitioning explicit
filesys rootdisk.s1 5000 swap
filesys rootdisk.s0 10000 /

使用 js2ai 命令的 –p 选项处理该配置文件即可。

# js2ai -p fdisk.profile
Successfully completed conversion

输出 AI 清单 AI_fdisk.profile/fdisk.profile.x86.xmltarget 节中具有以下内容:

<target>
  <disk whole_disk="true">
    <disk_name name="c1t0d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice name="1" action="create" force="true" is_swap="true">
        <size val="5000mb"/>
      </slice>
      <slice name="0" action="create" force="true" in_zpool="rpool" in_vdev="rpool_vdev">
        <size val="10000mb"/>
      </slice>
     </partition>
  </disk>
  <logical noswap="false" nodump="true" >
    <zpool name="rpool" is_root="true">
      <vdev name="rpool_vdev" redundancy="none"/>
      <filesystem name="export" mountpoint="/export"/>
      <filesystem name="export/home"/>
      <be name="solaris"/>
    </zpool>
  </logical>
</target>

software 节与 /usr/share/auto_install/manifest/default.xml 中的相同,因为该配置文件不包含任何软件包规范。

示例 2-5  更正 mirrorfilesys.profile 错误

js2ai 命令显示 mirrorfilesys.profile JumpStart 配置文件的以下错误:

mirrorfilesys.profile:line 3:UNSUPPORTED: unsupported mount point of 'unnamed' specified,
mount points other than '/' and 'swap' are not supported
mirrorfilesys.profile:line 4:UNSUPPORTED: unsupported keyword: cluster

在 JumpStart 配置文件中,可以省略 filesys mirror 规范中的 file-system 参数。在 js2ai 转换中,不能省略 file-system 参数,该参数必须具有以下两个值之一:/swap

编缉 mirrorfilesys.profile 文件,将 "/" 添加到 filesys 规范的结尾并删除 cluster 行。然后,mirrorfilesys.profile 文件具有以下内容:

install_type initial_install
partitioning default
filesys mirror c6t0d0s0 c6t1d0s0 60048 /

在其他位置保存 AI_mirrorfilesys.profile/criteria-2.xml 文件。然后,使用 js2ai 命令的 –p 选项处理该配置文件即可。

# js2ai -p mirrorfilesys.profile
Successfully completed conversion

AI_mirrorfilesys.profile 目录包含两个输出 AI 清单:mirrorfilesys.profile.sparc.xmlmirrorfilesys.profile.x86.xml。这两个 AI 清单之间的唯一差异是 mirrorfilesys.profile.x86.xml 包含两个 partition 规范。mirrorfilesys.profile.x86.xml 清单在 target 节中具有以下内容:

<target>
  <disk>
    <disk_name name="c6t1d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice action="create" force="true" in_vdev="rpool_vdev" in_zpool="rpool" name="0">
        <size val="60048mb"/>
      </slice>
    </partition>
  </disk>
  <disk>
    <disk_name name="c6t0d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice action="create" force="true" in_vdev="rpool_vdev" in_zpool="rpool" name="0">
        <size val="60048mb"/>
      </slice>
    </partition>
  </disk>
  <logical noswap="false" nodump="false" >
    <zpool name="newpool" is_root="true">
      <vdev name="rpool_vdev" redundancy="mirror"/>
      <filesystem name="export" mountpoint="/export"/>
      <filesystem name="export/home">
      <be name="solaris">
    </zpool>
  </logical>
</target>

software 节与 /usr/share/auto_install/manifest/default.xml 中的相同,因为该配置文件不包含任何软件包规范。

示例 2-6  更正 mirrorpool.profile 错误

js2ai 命令显示 mirrorpool.profile JumpStart 配置文件的以下错误:

mirrorpool.profile:line 4:CONVERSION: unable to convert 'any' device to physical device.
Replace 'any' with actual device name
mirrorpool.profile:line 8:UNSUPPORTED: unsupported keyword: cluster

    使用以下两种方法中的任一方法修复这些错误。这两种修复方法可以生成相同的 AI 清单输出。另请参见转换 any 设备的方式

  • 编缉 mirrorpool.profile 配置文件,使用物理设备名称替换两个 any 条目。此外,删除 cluster 行。然后,mirrorpool.profile 文件将具有类似下面的内容:

    install_type initial_install
    partitioning default
    pool newpool auto auto auto mirror c6t0d0s0 c6t1d0s0
  • 如果在 pool 规范的 vdev-list 列表中指定 any 而不是物理设备名称,则必须在包括 any 参数的规范之前提供设备信息。编缉 mirrorpool.profile 配置文件,在 pool 规范之前添加 usedisk 规范。此外,删除 cluster 行。然后,mirrorpool.profile 文件将具有类似下面的内容:

    install_type initial_install
    partitioning default
    usedisk c6t0d0 c6t1d0
    pool newpool auto auto auto mirror any any

在其他位置保存 AI_mirrorpool.profile/criteria-4.xml 文件。然后,使用 js2ai 命令的 –p 选项处理该配置文件即可。

# js2ai -p mirrorpool.profile
Successfully completed conversion

AI_mirrorpool.profile 目录包含两个输出 AI 清单:mirrorpool.profile.sparc.xmlmirrorpool.profile.x86.xml。这两个 AI 清单之间的唯一差异是 mirrorpool.profile.x86.xml 包含两个 partition 规范。mirrorpool.profile.x86.xml 清单在 target 节中具有以下内容:

<target>
  <disk>
    <disk_name name="c6t1d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice action="create" force="true" in_vdev="rpool_vdev" in_zpool="newpool" name="0"/>
    </partition>
  </disk>
  <disk>
    <disk_name name="c6t0d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice action="create" force="true" in_vdev="rpool_vdev" in_zpool="newpool" name="0"/>
    </partition>
  </disk>
  <logical noswap="false" nodump="true">
    <zpool name="rpool" is_root="true">
      <vdev name="rpool_vdev" redundancy="mirror"/>
      <filesystem name="export" mountpoint="/export"/>
      <filesystem name="export/home">
      <be name="solaris">
    </zpool>
  </logical>
</target>

software 节与 /usr/share/auto_install/manifest/default.xml 中的相同,因为该配置文件不包含任何软件包规范。

示例 2-7  更正 rootdisk.profile 错误

js2ai 命令显示 rootdisk.profile JumpStart 配置文件的以下错误:

rootdisk.profile:line 3:CONVERSION: unable to convert 'rootdisk.s0'.
Replace'rootdisk.' with actual device name
rootdisk.profile:line 4:CONVERSION: unable to convert 'rootdisk.s1'.
Replace'rootdisk.' with actual device name
rootdisk.profile:line 5:UNSUPPORTED: unsupported keyword: cluster

    使用以下两种方法中的任一方法修复这些错误。这两种修复方法可以生成相同的 AI 清单输出。

  • 编辑 rootdisk.profile 配置文件,使用 c0t0d0 替换 rootdisk.。此外,删除 cluster 行。然后,rootdisk.profile 文件具有以下内容:

    install_type initial_install
    partitioning explicit
    filesys c0t0d0s0 15000 /
    filesys c0t0d0s1 1000 swap
  • 编缉 rootdisk.profile 配置文件以添加 root_device 规范并删除 cluster 行。然后,rootdisk.profile 文件具有以下内容:

    install_type initial_install
    partitioning explicit
    root_device c0t0d0s0
    filesys rootdisk.s0 15000 /
    filesys rootdisk.s1 1000 swap

在其他位置保存 AI_rootdisk.profile/criteria-3.xml 文件。然后,使用 js2ai 命令的 –p 选项处理该配置文件即可。

# js2ai -p rootdisk.profile
Successfully completed conversion

AI_rootdisk.profile 目录包含两个输出 AI 清单:rootdisk.profile.sparc.xmlrootdisk.profile.x86.xml。这两个 AI 清单之间的唯一差异是 rootdisk.profile.x86.xml 包含 partition 规范。rootdisk.profile.x86.xml 清单在 target 节中具有以下内容:

<target>
  <disk>
    <disk_name name="c0t0d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice action="create" force="true" in_vdev="rpool_vdev" in_zpool="rpool" name="0">
        <size val="15000mb"/>
      </slice>
      <slice action="create" force="true" is_swap="true" name="1">
        <size val="1000mb"/>
      </slice>
    </partition>
  </disk>
  <logical noswap="false" nodump="true" noswap="false">
    <zpool name="rpool" is_root="true" >
      <vdev name="rpool_vdev" redundancy="none"/>
      <filesystem name="export" mountpoint="/export"/>
      <filesystem name="export/home">
      <be name="solaris">
    </zpool>
  </logical>
</target>

software 节与 /usr/share/auto_install/manifest/default.xml 中的相同,因为该配置文件不包含任何软件包规范。