本节显示了使用单个 js2ai 命令转换 JumpStart rules 文件以及该 rules 文件引用的所有配置文件。缺省情况下,每个转换的配置文件都将输出到名为 AI_profile-filename 的目录。用于选择该配置文件的规则作为 AI 条件文件输出到同一个目录中。
以下示例使用以下 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
使用以下命令处理该 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,其中 arch 为 generic、x86 或 sparc。
# 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
日志文件报告不支持将 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:97 是 sample_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.127,js2ai 命令自动创建 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.0,js2ai 命令自动创建 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 i386,js2ai 命令自动创建 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>
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.xml 在 target 节中具有以下内容:
<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.xml 和 mirrorfilesys.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.xml 和 mirrorpool.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.xml 和 rootdisk.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 中的相同,因为该配置文件不包含任何软件包规范。