usr/src/cmd/auto-install/ai_manifest.xml
changeset 862 e9f31f2f2f2d
parent 861 ccd399d2c6f7
child 898 c3699bab1100
--- a/usr/src/cmd/auto-install/ai_manifest.xml	Tue Aug 17 18:22:44 2010 -0400
+++ b/usr/src/cmd/auto-install/ai_manifest.xml	Fri Aug 20 11:31:18 2010 -0600
@@ -1,3 +1,4 @@
+<?xml version="1.0"?>
 <!--
 CDDL HEADER START
 
@@ -20,196 +21,221 @@
 
 Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
 -->
-
 <!--
 ===============================================================================
-RelaxNG sample manifest for Automatic Installer input manifest specification.
+DTD sample manifest for Automatic Installer input manifest specification.
 ===============================================================================
 -->
-<ai_manifest name="sample_ai_manifest">
-	<!--
-	=======================================================================
-	<ai_target_device> - selections for AI target Device specification
-
-	Disk criteria are divided into two mutually exclusive groups:
+<!DOCTYPE auto_install SYSTEM "file:///usr/share/auto_install/ai.dtd">
+<auto_install>
+  <!--
+	"auto_reboot" set to "true" may be an issue for x86 machines.
+	The boot order is not guaranteed and may cause unexpected
+	behavior. If auto_reboot is not desired, removing this
+	attribute, e.g. <ai_instance name="sample_ai_manfiest">
+	will work. "auto_reboot" is set to false by default. 
+    -->
+  <ai_instance name="sample_ai_manifest" auto_reboot="true">
+    <!--
+      =======================================================================
+      <target/target_device> - selections for AI target Device specification
 
-	G1 - deterministic disk criteria
-	................................
-	  * iscsi_target_parameters
-	  * target_device_name (c#t#d# name or 'boot_disk')
-	  * target_device_select_volume_name
-	  * target_device_select_id
-	  * target_device_select_device_path
-
-	G2 - rest of disk criteria
-	..........................
-	  * target_device_type
-	  * target_device_vendor
-	  * target_device_size
+      Disk criteria are divided into three mutually exclusive groups:
 
-	Schema ai_manifest.rng enforces following policy:
-
-	* criteria in group G1 are mutually exclusive - only
-	  one can be specified at a time
-
-	* groups G1 and G2 are mutually exclusive - i.e.
-	  if criteria from G1 is specified, no criteria
-	  from G2 are allowed and vice versa
+      G1 - deterministic disk criteria
+      ................................
+        * target_device/disk/iscsi parameters
+        * target_device/disk/disk_name, with name_type attribute:
+          one of ctd, volid, devpath or devid
 
-	* multiple criteria from G2 can be specified
-        =======================================================================
-        -->
-	<ai_target_device>
-		<!-- G1 -->
-               	<!--
-		    c#t#d# device name like c0t0d0 or 
-		    MPXIO name like c0t2000002037CD9F72d0
-		    or 'boot_disk' keyword to select boot disk
-		-->
-		<target_device_name>
-			boot_disk
-		</target_device_name>
+      G2 - non-deterministic disk criteria
+      ..........................
+        * target_device/disk/disk_prop: Any of dev_type, dev_vendor or
+          dev_size
+
+      G3 - keyword disk criteria
+      ...........................
+        * target_device/disk/disk_keyword: "boot_disk"
+
+      Schema ai.dtd enforces following policy:
+
+      * criteria in group G1 are mutually exclusive - only
+        one can be specified at a time
 
-               	<!-- volume name set for instance by means
-		    of format(1M) command
-		-->
-		<!--
-		    <target_device_select_volume_name>
-			ai-disk
-		    </target_device_select_volume_name>
-		-->
-
-               	<!-- device id - e.g. can be obtained by means of
-		    iostat(1M) -iEn
-		-->
-		<!--
-		    <target_device_select_id>
-			id1,cmdk@AST31000340NS=____________9QJ2LNYY
-		    </target_device_select_id>
-		-->
+      * groups G1, G2 and G3 are mutually exclusive - i.e.
+        if criteria from G1 is specified, no criteria
+        from G2 or G3 are allowed and vice versa
 
-               	<!-- device path under /devices directory, e.g.
-		    /pci@1e,600000/pci@0/pci@9/pci@0/scsi@1/sd@0,0
-		-->
-		<!--
-		    <target_device_select_device_path>
-			/pci@0/pci@9/pci@0/scsi@1/sd@0,0
-		    </target_device_select_device_path>
-		-->
-
-		<!-- G2 -->
-		<!--
-		    <target_device_type>SCSI</target_device_type>
-		    <target_device_vendor>hitachi</target_device_vendor>
-		    <target_device_size>20480</target_device_size>
-		-->
-
-		<!--
-		    Uncomment this to force AI to find an existing Solaris
-		    partition instead of creating a new one.
-		-->
-		<!--
-		    <target_device_use_solaris_partition>
-			true
-		    </target_device_use_solaris_partition>
-		-->
+      * multiple criteria from G2 can be specified
+      =======================================================================
+    -->
+    <target>
+      <target_device>
+        <disk>
+          <!-- G1 -->
+          <!--
+            c#t#d# device name like c0t0d0 or 
+            MPXIO name like c0t2000002037CD9F72d0
+          -->
+          <disk_name name="c1t0d0" name_type="ctd"/>
+          <!-- volume name set for instance by means
+            of format(1M) command
+          -->
+          <!--
+          <disk_name name="ai-disk" name_type="volid"/>
+          -->
+          <!-- device id - e.g. can be obtained by means of
+            iostat(1M) -iEn
+          -->
+          <!--
+          <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
+          -->
+          <!-- device path under /devices directory, e.g.
+            /pci@1e,600000/pci@0/pci@9/pci@0/scsi@1/sd@0,0
+          -->
+          <!--
+          <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
+          -->
+          <!--
+            ISCSI target device
 
-		<target_device_install_slice_number>
-		    0
-		</target_device_install_slice_number>
-	</ai_target_device>
-	<ai_device_partitioning>
-		<partition_action>create</partition_action>
-		<partition_number>1</partition_number>
-		<partition_start_sector>200</partition_start_sector>
-		<partition_size>20480</partition_size>
-		<partition_type>99</partition_type>
-	</ai_device_partitioning>
-	<ai_device_partitioning>
-		<partition_action>create</partition_action>
-		<partition_number>4</partition_number>
-		<partition_start_sector>200</partition_start_sector>
-		<partition_size>20480</partition_size>
-		<partition_size_units>mb</partition_size_units>
-		<partition_type>99</partition_type>
-	</ai_device_partitioning>
-	<ai_device_vtoc_slices>
-		<slice_action>create</slice_action>
-		<slice_number>4</slice_number>
-		<slice_size>20480</slice_size>
-		<slice_size_units>mb</slice_size_units>
-	</ai_device_vtoc_slices>
-	<ai_device_vtoc_slices>
-		<slice_action>delete</slice_action>
-		<slice_number>4</slice_number>
-		<slice_size>20480</slice_size>
-	</ai_device_vtoc_slices>
-	<ai_pkg_repo_default_publisher>
-		<main url="http://pkg.opensolaris.org/release"
-		    publisher="opensolaris.org"/>
-		<mirror url=""/>
-	</ai_pkg_repo_default_publisher>
-
-	<!--
-	    By default the latest build available, in the
-	    specified IPS repository, is installed.
-	    If another build is required, the build number has
-	    to be appended to the 'entire' package in following
-	    form:
+          <iscsi name="c0d2E0001010F68">
+            <ip>192.168.1.34</ip>
+          </iscsi> 
+          -->
+          <!-- G2 -->
+          <!--
+          <disk_prop dev_vendor="hitachi" dev_size="20480mb"/>
+          -->
+          <!-- G3 -->
+          <!--
+          <disk_keyword key="boot_disk"/>
+          -->
+          <!--
+            Uncomment this to force AI to find an existing Solaris
+            partition instead of creating a new one.
+          -->
+          <!--
+          <partition action="use_existing"/>
+          -->
+          <partition name="1" part_type="99">
+            <size start_sector="200" val="20480mb"/>
+          </partition>
+          <partition name="4" part_type="99">
+            <size start_sector="2000" val="20480mb"/>
+          </partition>
+          <slice name="0" is_root="true">
+            <size val="20480mb"/>
+          </slice>
+          <slice name="4">
+            <size val="20480mb"/>
+          </slice>
+        </disk>
+      </target_device>
+    </target>
+    <software name="ips">
+      <source>
+        <publisher name="opensolaris.org">
+          <origin name="http://pkg.opensolaris.org/release"/>
+        </publisher>
+      </source>
+      <!--
+        By default the latest build available, in the
+        specified IPS repository, is installed.
+        if another build is required, the build number has
+        to be appended to the 'entire' package in following
+        form:
+      <name="[email protected]#"/>
+      -->
+      <software_data type="IPS">
+        <name>pkg:/entire</name>
+        <name>pkg:/babel_install</name>
+      </software_data>
+      <!--
+          babel_install and slim_install are group packages used to
+          define the default installation.  They are removed here so
+          that they do not inhibit removal of other packages on the installed
+          system
+      -->
+      <software_data action="uninstall" type="IPS">
+        <name>pkg:/babel_install</name>
+        <name>pkg:/slim_install</name>
+      </software_data>
+    </software>
+    <add_drivers>
+      <!--
+	    Driver Updates: This section is for adding driver packages to the
+            boot environment before the installation takes place.  The
+            installer can then access all devices on the system.  The
+            packages installed in the boot environment will also be installed
+            on the target.
 
-	    <pkg_name="[email protected]#/>
-	-->
-	<ai_install_packages>
-		<pkg name="entire"/>
-		<pkg name="babel_install"/>
-	</ai_install_packages>
-	<!--
-	    babel_install and slim_install are group packages used to
-	    define the default installation.  They are removed here so
-	    that they do not inhibit removal of other packages on the installed
-	    system
-	-->
-	<ai_uninstall_packages>
-		    <pkg name="babel_install"/>
-		    <pkg name="slim_install"/>
-	</ai_uninstall_packages>
-	<ai_auto_reboot>
-		false
-	</ai_auto_reboot>
-        <ai_add_drivers>
-		<!--
-		bundles are specifications of packages needed in order to
-		perform the install.  types are as follows:
+            A <search_all> entry performs a search for devices which are
+            missing their drivers.  A repository publisher and location
+            may be specified, and that repository and its database will
+            be used.  If no publisher and location is specified, the
+            configured repositories will be used.
+            (See pkg publisher command.)  If <addall> is specified as
+            "true", then drivers the database says are third-party drivers
+            will be added like all others; otherwise third-party drivers
+            will not be added.
+
+                <search_all addall="true">
+                    <source>
+                        <publisher name="opensolaris.org">
+                            <origin name="http://pkg.opensolaris.org/release"/>
+                        </publisher>
+                    </source>
+                </search_all>
+
+            <software> entries are user-provided specifications of packages
+            needed in order to perform the install.  types are P5I, SVR4, DU.
+            A <software_data> action of "noinstall" inhibits adding to target.
+
+            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
+            Path may be to a local file or an http or ftp specification.
+                <software>
+                    <source>
+                        <publisher>
+                            <origin
+				name=
+		"http://pkg.opensolaris.org/release/p5i/0/driver/firewire.p5i"/>
+                        </publisher>
+                    </source>
+		    <software_data type="P5I"/>
+                </software>
 
-		P5I: A pkg(5) P5I file, full path is in the "location" attr.
-		Path may be to a local file or an http or ftp specification.
-		<bundle type="P5I"
-		    location=
-		    "http://pkg.opensolaris.org/release/p5i/0/SUNW1394.p5i"/>
+            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
+            to the directory containing the packages.  The 
+	    software/software_data/name refers tp the package's top level
+	    directory or the package's datastream file.
 
-		SVR4: An SVR4 package spec.  location corresponds to what
-		pkgadd -d would refer to.  Name refers to the package name.
-		<bundle type="SVR4" location="/export/package_dir"
-		    name="SUNW1394h"/>
-
-		DU: An ITU (Install Time Update) or Driver Update image.
-		location refers to the path just above the image's DU directory.
-		<bundle type="DU" location="/export/duimages/mydriver"
-		    name="mydriverDU"/>
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/package_dir"/>
+                        </publisher>
+                    </source>
+                    <software_data type="SVR4">
+                        <name>my_disk_driver.d</name>
+                    </software_data>
+                </software>
 
-		A <searchall> entry performs a search for devices which are
-		missing their drivers.  It attempts to locate the correct
-		drivers via a database.  A repository publisher and location
-		may be specified, and that repository and its database will
-		be used.  If no publisher and location is specified, the
-		system's configured repositories will be used.
-		(See pkg publisher command.)  If <addall> is specified as
-		"true", then drivers the database says are third-party drivers
-		will be added like all others;  otherwise third-party drivers
-		will not be added.
-		    <searchall publisher="opensolaris.org"
-			location="http://ipkg.sfbay/dev" addall="true"/>
-		-->
-		<searchall/>
-	</ai_add_drivers>
-</ai_manifest>
+            DU: An ITU (Install Time Update) or Driver Update image.
+            The source/publisher/origin refers to the path just above the 
+	    image's DU directory (if expanded) or the name of the .iso image.  
+	    All packages in the image will be added.
+
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/duimages/mydriver.iso"/>
+                        </publisher>
+                    </source>
+                    <software_data type="DU"/>
+                </software>	
+      -->
+      <search_all/>
+    </add_drivers>
+  </ai_instance>
+</auto_install>