Document Information
1. Introduction to the Automated Installer
2. Automated Installer Task Map
3. Automated Installer Setup Instructions
4. How to Administer an Automated Install Server
5. How to Administer a Custom Install Client
6. How to Administer the Manifest Files for an Install Service
7. How to Manage Client Installations
8. Troubleshooting and FAQs for the Automated Installer
9. Appendix
installadm(1M) Man Page
|
AI Manifest Contents
As described in Chapter 6, How to Administer the Manifest Files for an Install Service, you can replace the default AI manifest for an
install service with a manifest that contains specifications for particular clients. See the
following detailed summaries of AI manifest contents and possible values:
AI Manifest Tag Values
The following table describes each tag in the AI manifest and elements within
each tag, and the values that can be entered for each tag
and element. Table 9-1 AI Manifest Tags and ValuesTag |
Element Within Tag |
Description |
<ai_target_device> |
|
<ai_target_device> describes the client target to install the OpenSolaris OS.
This parameter is optional. If this information is not provided, the automated installer
finds a target on the client and installs the OpenSolaris OS. For finding
the default target in the case of X86 client, the automated installer looks
for an available fdisk partition of the type, “Solaris” with a size greater
than the recommended size. In the case of SPARC systems, the installer looks
for a VTOC-labeled disk of the greater than recommended size. The <ai_target_size> can be
defined either by the device name, such as c0t0d0, or by the MPXIO
name, such as c0t2000002037CD9F72d0. The <ai_target_size> can also be defined by a combination
of <target_device_type>, <target_device_vendor>, and <target_device_size>. All elements of <ai_target_device> are optional. |
|
<target_device_name> |
<target_device_name> is the
name of the disk device. The device could be a cXtXdX value or
an MPXIO name. If the <target_device_name> is specified, all other <ai_target_device> specification parameters,
such as <target_device_type>, <target_device_vendor>, and <target_device_size> are ignored. Be cautious while using cXtXdX
values, since these values may change across OpenSolaris releases. |
|
<target_device_type> |
<target_device_type> denotes the type of
the target disk. Possible values are SCSI, SATA, PATA, and USB. |
|
<target_device_vendor> |
<target_device_vendor> denotes the
name of the manufacturer of the disk drives. Possible values include Sun, EMC,
Seagate, Fujitsu, and others. |
|
<target_device_size> |
<target_device_size> denotes the disk size of the target device in megabytes
(MB). If the size of a disk is equal to the <target_device_size>,
then that specific disk is chosen as the target device. |
|
<target_device_install_slice_number> |
<target_device_install_slice_number> denotes the slice where
the OpenSolaris OS should be installed. By default, the automated installer installs the
OpenSolaris OS on slice 0. The valid values of <target_device_install_slice_number> are 0,
1, 3, 4, 5, 6 and 7. Specifying slice 2 is not allowed,
since slice 2 represents the whole disk. |
<ai_device_partitioning> |
|
<ai_device_partitioning> describes the specification for a partition
action to be performed during the automated installation of the OpenSolaris OS. You
can delete an existing partition or create a new partition during installation.
<ai_device_partitioning> is optional and applicable only for X86 clients. All of the following elements
of <ai_device_partitioning> are optional. |
|
<partition_action> |
<partition_action> denotes the type of partition-related operation to be performed
during the client installation. The only allowed actions are create and delete. |
|
<partition_number> |
<partition_number> denotes
the unique partition identification in the partition table. When this element is combined
with the <partition_action> of delete, then the automatic installer deletes the partition with the
specified <partition_number>. When the <partition_action> has the value of create, <partition_number> is
ignored. |
|
<partition_start_sector> |
If the <partition_action> is create, <partition_start_sector> denotes the sector where the partition should
start. If the <partition_action> is delete, then the automated installer tries to
delete the partition starting at this sector. |
|
<partition_size> |
<partition_size> denotes the size of the partition to
be created or to be deleted. The value of <partition_size> is interpreted
based on the <partition_size_units> value. The default size unit is megabytes (MB).
The <partition_size> is required for creating a new partition. You can use
the special value, max_size, to indicate that you want the automated installer
to use the largest free region, and to create the partition with the
maximum possible space. |
|
<partition_type> |
<partition_type> denotes the type of the partition to be created or deleted.
If <partition_type> is specified in the delete action without any other partition
elements, the automated installer deletes all the partitions of that type. The value of
<partition_type> could be any integer representing a valid partition type. The automated installer
recognizes the values SOLARIS, DOS16, and FAT32. |
|
<partition_size_units> |
<partition_size_units> defines the units for the partition size.
The default size unit is megabytes (MB). The possible values for <partition_size_units> include
the following:
sectors, secs, sec, s, SECTORS, SECS, SEC, or S
MB, megabytes, megabyte, mb, m, MEGABYTES, MEGABYTE, M
GB, gigabytes, gigabyte, gb, g, GIGABYTES, GIGABYTE, G
TB, terabytes, terabyte, tb, t, TERABYTES, TERABYTE, T
|
<ai_device_vtoc_slices> |
|
<ai_device_vtoc_slices> specifies VTOC slice-related operations to be performed during automated installation of
the OpenSolaris OS. You can delete an existing slice or create a new
slice during installation. You can also choose to preserve an existing VTOC slice
during installation. |
|
<slice_action> |
<slice_action> denotes the type of slice-related operation to be performed during installation.
The allowed actions are create, delete, and preserve. |
|
<slice_number> |
<slice_number> denotes the unique slice
identification in the VTOC table. When this element is combined with the <slice_action>
set to delete, then the automatic installer deletes the slice with the specified
<slice_number>. If the <slice_action> is create, then a new slice is created with
the specified <slice_number>. If the <slice_action> is preserve, then the specified slice is
not touched during installation. |
|
<slice_size> |
<slice_size> denotes the size of the slice to be created
or deleted or preserved. The value of <slice_size> is interpreted based on
the <slice_size_units> value. The default size unit is megabytes (MB). The <slice_size> is
required for creating a new partition. You can use the special value,
max_size, to indicate that you want the automated installer to use the largest
free region and to create the partition with the maximum possible space. |
|
<slice_size_units> |
<slice_size_units> defines
the units for the slice size. The default size unit is megabytes (MB).
The possible values for <slice_size_units> include the following:
sectors, secs, sec, s, SECTORS, SECS, SEC, or S
MB, megabytes, megabyte, mb, m, MEGABYTES, MEGABYTE, M
GB, gigabytes, gigabyte, gb, g, GIGABYTES, GIGABYTE, G
TB, terabytes, terabyte, tb, t, TERABYTES, TERABYTE, T
|
<ai_pkg_repo_default_authority> |
|
<ai_pkg_repo_default_authority> defines the IPS repository from
which OpenSolaris installation should be performed. This element is optional. The default value
is pkg.opensolaris.org with an authority value of opensolaris.org. |
|
<main> |
<main> defines the primary IPS repository
to be used. <main> consists of two attributes, authname and url. The authname
is the authority name for the IPS repository. The url attribute points to the
location of the IPS repository. |
|
<mirror> |
<mirror> defines the location of a backup IPS repository
whose contents are identical to the <main> element and uses the same
authname. The mirror element consists of one attribute, url, that points to the
location of the IPS repository. This element is optional. There can be more
than one mirror. |
<ai_pkg_repo_addl_authority> |
|
<ai_pkg_repo_addl_authority> defines the additional IPS repositories from which installations can be
performed. This element is optional. This element can be used to install packages
which are not in your default repository. |
|
<main> |
<main> defines the primary IPS repository to
be used. <main> consists of two attributes, authname and url. The authname is
the authority name for the IPS repository. The url attribute points to the location
of the IPS repository. |
|
<mirror> |
<mirror> defines the location of a backup IPS repository whose
contents are identical to the <main> element and uses the same authname.
The mirror element consists of one attribute, url, that points to the location of
the IPS repository. This element is optional. There can be more than
one mirror. |
<ai_install_packages> |
|
<ai_install_packages> defines the list of packages to be installed by automated installer during
installation. <ai_install_packages> is mandatory. At least one package must be defined in
this element. This tag consists of a single element called pkg. This element,
pkg, has an attribute called name. The name attribute could be a
simple package name, such as SUNWcs, or an incorporation, such as entire, or
an FMRI, such as SUNWPython@2.4.4,5.11-0.101:20081119T213939Z. |
<ai_uninstall_packages> |
|
<ai_uninstall_packages> defines the list of packages to be removed
by automated installer during installation. <ai_uninstall_packages> is an optional element. The definition
of <ai_uninstall_packages> is similar to that of <ai_install_packages>. This tag consists of a
single element called pkg. The element, pkg, has an attribute called name.
The name attribute could be a simple package name, such as SUNWcs,
or an incorporation, such as entire, or an FMRI, such as SUNWPython@2.4.4,5.11-0.101:20081119T213939Z. |
<ai_http_proxy> |
|
The client
needs to reach the IPS repository defined in the AI manifest in order
to install the OpenSolaris OS. In a normal configuration, the DHCP server sends
DNS information to the client. This information is used to resolve the IPS
repository name to an IP address. In cases where DNS is not
set up, a HTTP proxy can be used to resolve the IPS repository
name and complete the client installation. The element <ai_http_proxy> can be used to setup HTTP
proxy that can be used for automated installations. <ai_http_proxy> consists of an
attribute, url, that points to the HTTP proxy location. This element is optional. |
<ai_auto_reboot> |
|
By
default, the automated installer doesn't automatically reboot the client after a successful installation
of an OpenSolaris OS. However, if you want the client to reboot automatically
after a successful installation of the OpenSolaris OS, <ai_auto_reboot> can be set to
true. The possible values of <ai_auto_reboot> are true and false. |
AI Manifest Complete File
The following is a complete AI manifest file with comments. <?xml version="1.0" encoding="UTF-8"?>
<!--
CDDL HEADER START
The contents of this file are subject to the terms of the
Common Development and Distribution License (the "License").
You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
or http://www.opensolaris.org/os/licensing.
See the License for the specific language governing permissions
and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each
file and include the License file at usr/src/OPENSOLARIS.LICENSE.
If applicable, add the following below this CDDL HEADER, with the
fields enclosed by brackets "[]" replaced with your own identifying
information: Portions Copyright [yyyy] [name of copyright owner]
CDDL HEADER END
Copyright 2009 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
-->
<!--
===============================================================================
RelaxNG schema for Automatic Installer input manifest specification.
Contains schema rules and content specification for AI manifest.
===============================================================================
-->
<grammar
xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<element name="ai_manifest">
<attribute name="name"/>
<!-- General automatic Installation parameters -->
<ref name="auto_installation_manifest"/>
</element>
</start>
<!--
=======================================================================
Parameters used for Automatic installation
=======================================================================
-->
<define name="auto_installation_manifest">
<interleave> <!-- Any element order is OK. -->
<optional>
<element name="ai_target_device">
<ref name="ai_target_device_contents"/>
</element>
</optional>
<zeroOrMore>
<element name="ai_device_partitioning">
<ref name="ai_device_partitioning_contents"/>
</element>
</zeroOrMore>
<zeroOrMore>
<element name="ai_device_vtoc_slices">
<ref name="ai_device_vtoc_slices_contents"/>
</element>
</zeroOrMore>
<optional>
<element name="ai_device_zfs_root_pool">
<ref name="ai_zfs_root_pool_contents"/>
</element>
</optional>
<optional>
<element name="ai_device_swap">
<ref name="ai_device_swap_contents"/>
</element>
</optional>
<optional>
<element name="ai_pkg_repo_default_authority">
<ref name="ai_pkg_repo_contents"/>
</element>
</optional>
<zeroOrMore>
<element name="ai_pkg_repo_addl_authority">
<ref name="ai_pkg_repo_contents"/>
</element>
</zeroOrMore>
<!--
========================================================
Define AI packages
========================================================
-->
<choice>
<element name="ai_packages">
<zeroOrMore>
<element name="package_name">
<text/>
</element>
</zeroOrMore>
</element>
<element name="ai_install_packages">
<oneOrMore>
<element name="pkg">
<attribute name="name">
<text/>
</attribute>
</element>
</oneOrMore>
</element>
</choice>
<optional>
<element name="ai_uninstall_packages">
<oneOrMore>
<element name="pkg">
<attribute name="name">
<text/>
</attribute>
</element>
</oneOrMore>
</element>
</optional>
<optional>
<element name="ai_http_proxy">
<ref name="ai_http_proxy_contents"/>
</element>
</optional>
<optional>
<element name="ai_auto_reboot">
<data type="boolean"/>
</element>
</optional>
</interleave>
</define>
<!--
=======================================================================
Selections for AI target Device specification
=======================================================================
-->
<define name="ai_target_device_contents">
<interleave>
<optional>
<!-- device name like c0t0d0 or
MPXIO name like c0t2000002037CD9F72d0 -->
<element name="target_device_name">
<text/>
</element>
</optional>
<optional>
<element name="target_device_type">
<text/>
</element>
</optional>
<optional>
<element name="target_device_vendor">
<text/>
</element>
</optional>
<optional>
<element name="target_device_size">
<text/>
</element>
</optional>
<optional>
<element name="target_device_install_slice_number">
<choice>
<value>0</value>
<value>1</value>
<value>2</value>
<value>3</value>
<value>4</value>
<value>5</value>
<value>6</value>
<value>7</value>
</choice>
</element>
</optional>
<optional>
<element name="target_device_use_solaris_partition">
<data type="boolean"/>
</element>
</optional>
<optional>
<element name="target_device_overwrite_root_zfs_pool">
<data type="boolean"/>
</element>
</optional>
</interleave>
</define>
<!--
=======================================================================
Selections for AI target device partitions specification
=======================================================================
-->
<define name="ai_device_partitioning_contents">
<interleave>
<element name="partition_action">
<choice>
<value>create</value>
<value>delete</value>
</choice>
</element>
<optional>
<element name="partition_number">
<data type="unsignedByte"/>
</element>
</optional>
<optional>
<element name="partition_start_sector">
<data type="long"/>
</element>
</optional>
<element name="partition_size">
<text/> <!-- number of "max_size" to use largest free region -->
</element>
<element name="partition_type">
<text/>
</element>
<optional>
<element name="partition_size_units">
<ref name="disk_space_size_units"/>
</element>
</optional>
</interleave>
</define>
<!--
=======================================================================
Selections for AI target device vtoc slices specification
=======================================================================
-->
<define name="ai_device_vtoc_slices_contents">
<interleave>
<element name="slice_action">
<choice>
<value>create</value>
<value>delete</value>
<value>preserve</value>
</choice>
</element>
<element name="slice_number">
<data type="unsignedByte"/>
</element>
<element name="slice_size">
<text/> <!-- number of "max_size" to use largest free region -->
</element>
<optional>
<element name="slice_size_units">
<ref name="disk_space_size_units"/>
</element>
</optional>
</interleave>
</define>
<!--
=======================================================================
Selections for AI ZFS Root Pool specification
=======================================================================
-->
<define name="ai_zfs_root_pool_contents">
<interleave>
<optional>
<element name="enable_mirrored_root">
<data type="boolean"/>
</element>
</optional>
<optional>
<element name="zfs_options">
<text/>
</element>
</optional>
</interleave>
</define>
<!--
=======================================================================
Selections for AI swap specification
The target device will be used as swap device
=======================================================================
-->
<define name="ai_device_swap_contents">
<element name="ai_swap_size">
<data type="unsignedLong"/>
</element>
</define>
<!--
=======================================================================
Define an authority and its mirror backups.
=======================================================================
-->
<define name="ai_pkg_repo_contents">
<element name="main">
<ref name="ai_repo_name"/>
</element>
<zeroOrMore>
<element name="mirror">
<ref name="ai_mirror_name"/>
</element>
</zeroOrMore>
</define>
<define name="ai_repo_name">
<attribute name="authname">
<text/>
</attribute>
<attribute name="url">
<text/>
</attribute>
</define>
<define name="ai_mirror_name">
<attribute name="url">
<text/>
</attribute>
</define>
<!--
=======================================================================
Define AI proxy
=======================================================================
-->
<define name="ai_http_proxy_contents">
<attribute name="url">
<text/>
</attribute>
</define>
<!--
=======================================================================
General definitions
=======================================================================
-->
<!--
=======================================================================
Units measuring sizable regions of space on disk drives
=======================================================================
-->
<define name="disk_space_size_units">
<choice>
<value>sectors</value>
<value>secs</value> <!-- disk space sectors (512 bytes) -->
<value>sec</value> <!-- disk space sectors (512 bytes) -->
<value>s</value>
<value>megabytes</value>
<value>megabyte</value>
<value>mb</value>
<value>m</value>
<value>gigabytes</value>
<value>gigabyte</value>
<value>gb</value>
<value>g</value>
<value>terabytes</value>
<value>terabyte</value>
<value>tb</value>
<value>t</value>
<value>SECTORS</value>
<value>SECS</value> <!-- disk space sectors (512 bytes) -->
<value>SEC</value> <!-- disk space sectors (512 bytes) -->
<value>S</value>
<value>MEGABYTES</value>
<value>MEGABYTE</value>
<value>MB</value>
<value>M</value>
<value>GIGABYTES</value>
<value>GIGABYTE</value>
<value>GB</value>
<value>G</value>
<value>TERABYTES</value>
<value>TERABYTE</value>
<value>TB</value>
<value>T</value>
</choice>
</define>
</grammar>
|