이 단원에서는 하나의 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(1M) 매뉴얼 페이지의 설명에 따라 dladm 명령을 사용합니다.
JumpStart 규칙 hostaddress 10.6.68.127의 경우, js2ai 명령이 JumpStart hostaddress 키워드를 AI ipv4 키워드로 대체하여 AI 조건 파일 AI_mirrorfilesys.profile/criteria-2.xml을 자동으로 만들었습니다.
<?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 명령이 제공된 네트워크 주소를 기준으로 하는 IP 주소 범위를 지정하여 AI 조건 파일 AI_rootdisk.profile/criteria-3.xml을 자동으로 만들었습니다.
<?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 명령이 JumpStart arch 키워드를 AI cpu 키워드로 대체하여 AI 조건 파일 AI_mirrorpool.profile/criteria-4.xml을 자동으로 만들었습니다.
<?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 값 중 하나를 가져야 합니다.
filesys 지정의 끝에 "/"를 추가하고 cluster 행을 삭제하도록 mirrorfilesys.profile 파일을 편집합니다. 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 장치가 변환되는 방식도 참조하십시오.
두 any 항목을 물리적 장치 이름으로 대체하여 mirrorpool.profile 프로파일을 편집합니다. cluster 라인도 삭제합니다. mirrorpool.profile 파일의 컨텐츠는 다음과 유사합니다.
install_type initial_install partitioning default pool newpool auto auto auto mirror c6t0d0s0 c6t1d0s0
pool 지정의 vdev-list 목록에서 물리적 장치 이름 대신 any를 지정한 경우 any 매개변수를 포함하는 지정 사항 앞에 장치 정보를 제공해야 합니다. 풀 지정 앞에 usedisk 지정을 추가하도록 mirrorpool.profile 프로파일을 편집합니다. 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.를 c0t0d0으로 대체하여 rootdisk.profile 프로파일을 편집합니다. cluster 라인도 삭제합니다. rootdisk.profile 파일의 컨텐츠는 다음과 같습니다.
install_type initial_install partitioning explicit filesys c0t0d0s0 15000 / filesys c0t0d0s1 1000 swap
root_device 지정을 추가하고 cluster 행을 삭제하도록 rootdisk.profile 파일을 편집합니다. 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에서와 같습니다.