Solaris JumpStart to OpenSolaris Automated Installation

Migrating from Solaris JumpStart to OpenSolaris Automated Installer

Under Construction

Overview of JumpStart and Automated Installer

Both Solaris Custom JumpStart and OpenSolaris Automated Installer automatically install multiple systems on a network.

If you are an expert user of JumpStart, you might want to read the remainder of this document, which compares JumpStart and Automated Installer. If you are not an expert user of JumpStart, you should disregard this page and instead go directly to learning about Automated Installer. See the following resources for information about Automated Installer:

Similarities: JumpStart and Automated Installer

Both JumpStart and Automated Installer:

  • Perform network installs. Network connectivity is required.
  • Can install both x86 and SPARC clients. One install server can serve both x86 and SPARC installations.
  • Can boot clients either from an install server or from media.

Differences: JumpStart and Automated Installer

Solaris Custom JumpStart OpenSolaris Automated Installer
Installs the Solaris 10 OS.
To use an OpenSolaris system as a Solaris JumpStart server, see OpenSolaris JumpStart Server.
Installs the OpenSolaris OS.
Uses plain text profile files to define how to install the system. Uses xml ai manifest files to define how to install the system.
Uses plain text rules files to define which profile to use to install which systems. Uses xml criteria manifest files to define which ai manifest to use to install which systems.
Provides the capability to test install profiles against different disk configurations by using pfinstall(1M) and disk configuration files. How to test AI installations before executing?
Does not require DHCP to obtain network installation information and does not require network access to packages to install. JumpStart can be used to perform a hands-off installation of a single standalone system with the JumpStart profile on diskette and the system on DVD or CD. Requires DHCP and network access. Installation of a single system from media obtains the install manifest from media but installs packages from the network.

For complete Solaris JumpStart instructions, see the Solaris 10 Installation Guide: Custom JumpStart and Advanced Installations.

Upgrade Systems

To upgrade systems using JumpStart, specify the upgrade value for the install_type keyword in the profile.

To upgrade OpenSolaris systems to a new operating system version, use the image-update subcommand as in the following example:

ssh -l <someone>@<somesystem.org> '/usr/sbin/pkg image-update'

Make sure the user has privilege to run the pkg command. Make sure your preferred package publisher is set to the package repository to which you want to update. See the OpenSolaris Image Packaging System Guide and the OpenSolaris Managing Boot Environments guide for more information.

To upgrade only specified packages on OpenSolaris systems, use the install and uninstall subcommands as in the following example:

ssh -l <someone>@<somesystem.org> '/usr/sbin/pkg install <pkg1> <pkg2> <pkg3>'

Make sure the user has privilege to run the pkg command. Make sure your preferred package publisher is set to the package repository where you want to get the specified packages. See the OpenSolaris Image Packaging System Guide for more information.

Install Third-Party Software

To install third-party software after a JumpStart installation, use a JumpStart finish script.

To install third-party software after an Automated Installer installation, create a first reboot SMF service. Save the service as an IPS package, and install that package during the Automated Installer installation.

Reset the Root Password on the Client

To reset the root password after a JumpStart installation, use a JumpStart finish script.

To reset the root password after an Automated Installer installation,

AI Install Server

In this configuration, install one system with the OpenSolaris OS, and then set up this system as the AI install server. On this install server, set up an installation service. An installation service is described by manifests, or specifications, for particular x86 or SPARC installations. Manifests can include information such as target device, additional packages, partition information, and other parameters. When the client boots, the client initiates a search for a manifest that matches the client's machine specifications. When a matching manifest is found, the client is installed with the OpenSolaris OS according to the specifications in the manifest files. AI does a package-based installation from one or more Image Packaging System (IPS) repositories that are specified in the manifests.

The tools required to set up an AI server are included on the OpenSolaris CD or in the OpenSolaris OS ISO. These AI tools are not installed by default when you install the OpenSolaris OS, but you can easily install these tools with the Package Manager utility or with the pkg(1) command:

$ pfexec pkg install SUNWinstalladm-tools

When you have installed the SUNWinstalladm-tools package, use the installadm(1M) command to administer this system as an AI install server.

Bootable AI

You can download a SPARC or x86 AI image from opensolaris.com and burn it to media. Then you can boot a SPARC or x86 client system and perform an automated installation from the media, without setting up an install server. The installation can use a default manifest or a custom manifest. This media option is particularly useful for SPARC systems that do not have WANboot support.

For complete AI information, including instructions for automated installations from media, see the OpenSolaris Automated Installer Guide.

Comparing Features: Solaris JumpStart and Automated Installer

Can I? JumpStart (JS) Automated Installer (AI)
Install the OpenSolaris OS? No. JS can only be used to install Solaris 10 releases, not OpenSolaris. Yes. AI can be used to install the OpenSolaris OS. AI cannot be used to install Solaris 10.
Install OS to multiple systems on a network? Yes. Yes.
Initiate install from a local media? Yes. Yes. AI can boot from media and install from the any IPS repository on the network.
Upgrade multiple systems on a network? Yes. No. Instead, use the Image Packaging System (IPS) to upgrade the packages on a system, either using the Update Manager or the pkg image-update command. For complete IPS instructions, see the OpenSolaris 2009.06 Image Packaging System Guide.
Use network to install to SPARC systems without WANboot? Yes. JS supports netbooting SPARC client systems by using RARP to establish a connection with the JS server. No. To initiate network booting, you must have WANBoot support on the SPARC client systems. You can directly boot the AI bootable media to instantiate an automated install for SPARC client systems that do not have WANboot support.
Specify a group of systems with particular attributes for installation? Yes. Create a custom JS rules file to identify a group of systems with shared attributes for installation. Yes. Create a custom criteria manifest that is comparable to the JS rules files. See the samples below.
Customize how the software is to be installed? Yes. Create custom JS profiles with installation specifications. Yes. Create custom AI manifests that are comparable to JS profiles. See the samples below.
Store install specifications on separate media? Yes. JS profiles and rules can be stored on separate media. JS can be initiated from any media, and the configuration can be obtained from the profiles and rules on the media or on the local system. Yes. AI manifests can be stored in a customized bootable AI media image, or in a network location via http.
Dynamically customize installation parameters? Yes. Set the JS profile to be derived and use the Begin script to generate the profile "on the fly" while the install client is booting. Yes. Use dynamic AI manifests to set installation parameters "on the fly" while the install client is booting. (This is a Solaris Next feature.)
Include pre-installation or post-installation tasks? Yes. Use Begin and Finish shell scripts with JS. Only post-installation tasks. Create an SMF service that runs during first boot. You can deliver this service in an IPS package and specify that package in the AI manifest so that the package is installed on your system. Then this service will run on first boot. (Need example of creating an SMF service as a replacement for a finish script.)
Install Flash archives? Yes. Jumpstart supports Flash archives. No. AI does not support Flash archives. (Joe Vlcek: Can we say what can be done instead? Alta: Do we plan to support Flash archives in Solaris Next?)
Automatically serve install clients on the network? No. You must use the add client procedure on your Jumpstart server to add each individual JumpStart client on the network. Yes. Set up an install service on your AI server. This install service can serve clients without explicit client setup. If you want to provide a custom configuration, you can create an explicit setup for a client.

Top

Comparing Task Maps: Solaris JumpStart and Automated Installer

Dave Miner: Task maps are not specific enough. We should more directly document existing, common Jumpstart use cases and then provide the equivalent how-to for AI.

The Solaris 10 OS media includes the tools you need to set up Solaris 10 network install servers and custom Jumpstart configurations. For example, when you insert a Solaris 10 OS DVD into your system, you go to the /media/dvd0/Solaris_10/Tools directory on the mounted DVD to access the tools used to set up a network install image. From this directory, you run the setup_install_server script to create a new network install image. This directory also provides various other scripts, such as add_install_client, that are necessary to administer this network install image (Sundar: Or administer this client?).

JumpStart: You can use shell scripts to include pre-installation and post-installation tasks. You can use a sysidcfg(4) file to specify configuration information so that the custom JumpStart installation is completely automated.

JumpStart (JS) Automated Install (AI)
1. Check system requirements for the version of Solaris 10 that you plan to install. See "System Requirements and Recommendations" in Solaris 10 10/09 Installation Guide: Planning for Installation and Upgrade. Check the AI system requirements for the server and for the client systems. Check the requirements for the OpenSolaris release that you plan to install. See "Server Setup" and "Client System Requirements" in the OpenSolaris Automated Installer Guide.
2. Set up an install image on your install server. Go to the Tools directory of the Solaris media and run the setup_install_server command.
# ./Solaris_10/Tools/setup_install_server <imagepath>
Set up an AI install service on the AI server using the installadm(1M) command and the OpenSolaris AI ISO file.
# installadm create-service -n svcname -s <srcimage ISO file> <imagepath>
Note: If your AI server is also your DHCP server, you can optionally use the installadm create-service options to set up a pool of IP addresses to be used with this install service.
3. Optional: If you need to set up separate boot servers for other subnets, set up the boot images on your boot servers.
# ./Solaris_10/Tools/setup_install_server -b <imagepath>
Not needed.
4. Create a profile. Optional: Create an AI manifest or use the default AI manifest that is provided with the install service.
5. Optional: Create custom begin and finish scripts. Currently, only post-installation tasks are supported for AI. Support for dynamically derived AI manifests is planned for the Solaris Next release. Currently for post-installation tasks, create an SMF service that runs during first boot. You can deliver this service in an IPS package and specify that package in the AI manifest so that the package is installed on your system. Then this service will run on first boot. (Need example of creating an SMF service as a replacement for a finish script.)
6. Create a rules file to correlate the profile to systems with particular attributes. Optional: Create a Criteria manifest that includes reference to an AI manifest or has an embedded AI manifest, or use the default AI manifest that is provided with the install service.
7. Test your customized specifications. Use the check script provided with the Solaris image to test the JS rules file and profile to confirm that your changes are valid.
# ./Solaris_10/Misc/jumpstart_sample/check
The Criteria manifest is automatically validated when you add it to the install service.
# installadm add -n svcname -m manifest_file
8. Add client systems to your JS server by using the addclient script in the Tools directory of the Solaris image.
# ./Solaris_10/Tools/addclient
Optional: If you want to set up client systems with custom configurations, you can add the custom clients to your AI server by using the installadm create-client command.
# installadm create-client -e maccaddr -t imagepath -n svcname
9. Modify your DHCP server for this client system based on the output given from the previous addclient command as needed. Modify your DHCP server for this client system based on the output given from the previous installadm create-client command as needed.
Note: If your AI server is also your DHCP server, the installadm command would have updated the DHCP server configuration automatically.
10. Boot the client system to start installation. Boot the client system to start installation.

Top

Comparing Keywords: Solaris JumpStart Keywords and Automated Installer Directives

The following tables list examples of the Rules keywords and Profile keywords for JumpStart. For each keyword, an example of the most comparable directive in AI is given.

  • Jumpstart rules keywords are compared against AI criteria directives.
  • Jumpstart profile keywords are compared against directives in the AI manifest file.

Note: JumpStart uses plain text files. AI uses XML files.

Rules Keywords
JS Rules Keyword Example AI Criteria Directive Example
any - If no criteria matches for a client system, an AI install service will provide a default AI manifest.
arch sparc
<ai_criteria name="ARCH">
     <value>sparc</value>
</ai_criteria>
disksize c0t3d0 300 No comparable criteria. Need more info.
domainname No comparable criteria. Need more info.
hostaddress 10.6.68.127
<ai_criteria name="IPV4">
     <value>10.6.68.127</value>
</ai_criteria>
hostname opensolaris (Clay: See bugs 12510 and 12511.)
installed c0t3d0s1 Solaris 10 No comparable criteria. Need more info.
karch i86pc No comparable criteria. Need more info.
memsize 2048
<ai_criteria name="MEM">
     <value>2048</value>
</ai_criteria>
model SUNW,Sun-Blade-1000
<ai_criteria_name="Platform">
     <value>
        SUNW,Sun-Fire-880
     </value>
</ai_criteria>
network 10.6.68.0
<ai_criteria_name="IPV4">
     <range>
	10.6.68.0
	10.6.68.255
     </range>
</ai_criteria>
osname Solaris 10 No comparable criteria. Need more info.
probe No comparable functionality. Need more info.
totaldisk 300-500 No comparable criteria. Need more info.
No comparable rule.
<ai_criteria_name="MAC">
     <value>0:3:ba:33:9d:b6</value>
</ai_criteria>

Top

Profile Keywords
JS Profile Keyword Example AI Manifest Directive Example
archive_location No comparable field. Need more info.
backup_media No comparable field. Need more info.
boot_device c0t0d0s0 update
<ai_target_device>
     <target_device_name>c0t0d0s0</target_device_name>
</ai_target_device>

Note: The second token value for this keyword is not supported in AI. The behavior on SPARC systems is that the EEPROM is always updated to the specified target device, so that the installed system automatically boots from that device. The behavior on x86 systems is that the firmware is never updated.

bootenv A boot environment is automatically created on installation of the OpenSolaris OS.
client_arch No comparable field. Need more info.
client_root No comparable field. Need more info.
client_swap No comparable field. Need more info.
client No comparable field. Need more info.
cluster SUNWCXall OpenSolaris does not use SVR4 metaclusters. Instead, PKG(5) group packages are used. Group packages are specified just as any other package is specified in the manifest. The default AI manifest includes the packages needed for a standard OpenSolaris OS. You can customize this list of packages.
<ai_install_packages>
     <pkg name="entire"/>
     <pkg name="SUNWcsd"/>
     <pkg name="SUNWcs"/>
     <pkg name="babel_install"/>
</ai_install_packages>
dontuse No comparable field. Need more info.
fdisk c0t3d0 solaris maxfree
or
fdisk c0t3d0 solaris2 delete
<ai_target_device>
     <target_device_name>c0t3d0</target_device_name>
</ai_target_device>

and

<ai_device_partitioning>
      <partition_action>create</partition_action>
      <partition_type>SOLARIS</partition_type>
      <partition_size>max_size</partition_size>
      <partition_size_units>GB</partition_size_units>
</ai_device_partitioning>

or

<ai_target_device>
     <target_device_name>c0t3d0</target_device_name>
</ai_target_device>

and

<ai_device_partitioning>
     <partition_type>SOLARIS2</partition_type>
     <partition_action>delete</partition_action>
</ai_device_partitioning>
filesys In JS, this creates the VTOC slice and the UFS file system on that slice. AI does not create UFS file systems, but you can still create VTOC slices using <ai_device_vtoc_slices>. Dave Miner: We plan to add more capability to configure additional ZFS datasets.
forced_deployment No comparable field. Need more info.
geo Geographic regions for language support is specified through pkg(5) group packages. Group packages are specified just like any other package is specified in the manifest. See the JumpStart cluster keyword above for more information.
install_type No comparable field. Need more info.
locale Locale support is specified through pkg(5) group packages. Group packages are specified just like any other package in the manifest. See the JumpStart cluster keyword above for more information.
layout_constraint No comparable field. Need more info.
local_customization No comparable field. Need more info.
metadb No comparable field. Need more info.
no_master_check No comparable field. Need more info.
no_content_check No comparable field. Need more info.
num_client No comparable field. Need more info.
package SUNWnew add nfs golden:/packages/Solaris_10
<ai_pkg_repo_default_authority>
     <main url="http://pkg.opensolaris.org/release" authname="opensolaris.org"/>
     <mirror url=""/>
</ai_pkg_repo_default_authority>
...
<ai_install_packages>
     <pkg name="entire"/>
     <pkg name="SUNWcsd"/>
     <pkg name="SUNWcs"/>
     <pkg name="babel_install"/>
     ...
     ...
     <pkg name="SUNWnew"/>
</ai_install_packages>
package SUNWfoo delete
<ai_uninstall_packages>
     <pkg name="SUNWfoo"/>
</ai_uninstall_packages>
partitioning default
partitioning existing
partitioning explicit
No comparable fields. If the target_device directives are omitted from the AI manifest, a default partitioning, ai_device_partitioning, is automatically used.
patch No comparable field. Need more info.
pool No comparable field. Need more info.
root_device No comparable field. Need more info.
system_type No comparable field. Need more info.
usedisk ai_target_device

Top

Examples: Converting Sample JumpStart Rules and Profile to AI Manifest Directives

Top

Sample JumpStart Profile

In the following sample JumpStart profile, the first column contains profile keywords, and the second column contains profile values.

install_type           initial_install
system_type            standalone
fdisk                  c0t0d0 solaris maxfree
cluster                SUNWCall
cluster                SUNWCstaroffice
cluster                SUNWevo

The above sample JumpStart profile states:

  • Systems will receive an initial installation.
  • Systems will be set up as standalone systems.
  • On each system, a Solaris fdisk partition is created on the largest contiguous free space on the c0t0d0 disk.
  • The Entire Distribution software group, SUNWCall, is installed on the system.
  • The StarOffice suite of tools is installed on the system.
  • The Evolution email and calendar utilities are not ?? to be installed on the system.

Equivalent AI Manifest Directives

The following excerpts from AI manifests show how you could convert the JumpStart profile above into directives in AI manifests.

<!-- The OpenSolaris release will be installed on the c0t0d0 disk. 
A Solaris2 partition will be created on the biggest chunk of contiguous free space. -->

<ai_manifest name=manifest1>
     <ai_target_device>
          <target_device_name>c0t0d0</target_device_name>
     </ai_target_device>

     <ai_device_partitioning>
          <partition_action>create</partition_action>
          <partition_type>SOLARIS</partition_type>
          <partition_size>max_size</partition_size>
          <partition_size_units>GB</partition_size_units>
     </ai_device_partitioning>

     <!-- Specifies an IPS repository. Packages will be retrieved from this repository and
installed on the system. -->

     <ai_pkg_repo_default_authority>
          <main url="http://pkg.opensolaris.org/dev" authname="opensolaris.org"/>
     </ai_pkg_repo_default_authority>

     <!-- The following packages will be installed from the IPS repository.
This list of packages corresponds to a standard OpenSolaris OS installation.
Due to dependency issues, entire must be listed first in the package list,
followed by SUNWcsd, and then SUNWcs. Any additional packages must be listed after SUNWcs.
"babel_install" represents the group package for the standard OpenSolaris OS.
"redistributable" represents the group package for all redistributable software in OpenSolaris.
"openoffice" is the group package for the OpenOffice suite of tools.-->

     <ai_install_packages>
          <pkg name="entire"/>
          <pkg name="SUNWcsd"/>
          <pkg name="SUNWcs"/>
          <pkg name="babel_install"/>
          <pkg name="redistributable/>
          <pkg name="openoffice"/>
     </ai_install_packages>

     <!-- The following packages will be uninstalled from the system.
"babel_install", "slim_install", and "redistributable" are uninstalled because they represent
the group package definitions used to install the system, and so must removed so that
individual packages can be removed. The SUNWevolution will be removed from the system.-->

     <ai_uninstall_packages>
          <pkg name="babel_install"/>
          <pkg name="slim_install"/>
          <pkg name="redistributable"/>
          <pkg name="SUNWevolution"/>
     </ai_uninstall_packages>

</ai_manifest>

SC manifest?

<!-- This SC manifest provides configuration settings for the installed system.-->

<sc_embedded_manifest name = "sc_manifest1">
     <service_bundle type="profile" name="name">
          <service name="ai_properties" version="1" type="service">
               <instance name="default" enabled="true">
                    <property_group name="ai" type="application">
                         <propval name="username" type="astring" value="jack"/>
                         <propval name="userpass" type="astring" value="9Nd/cwBcNWFZg"/>
                         <propval name="description" type="astring" value="default_user"/>
                         <propval name="rootpass" type="astring"
value="<propval name="timezone" type="astring" value="US/Pacific"/>
                         <propval name="hostname" type="astring" value="opensolaris"/>
                    </property_group>
               </instance>
          </service>
     </service_bundle>
</sc_embedded_manifest>

Sample JumpStart Rules File

In the following sample JumpStart rules file, the first column contains rule keywords and rule values, the second column is the begin script, the third column is the profile, and the fourth column is the finish script. Note: No begin or finish scripts are specified for any of the three alternatives.

memsize 2048-4096 && model SUNW      -             lx_prof          -
arch i86pc                           -             prog_prof        -
any                                  -             generic_prof     -

The above sample JumpStart rules file identifies three basic groups of systems, and each group is assigned a different profile.

This sample rules file states:

  • Any SPARC systems with a memory size between 2048 and 4096 MB will be installed using specifications in the lx_prof profile.
  • Any x86 systems will be installed using specifications in the prog_prof profile.
  • Any systems not covered in the above rules will be installed using specifications in the generic_prof profile.

Equivalent AI Criteria Manifest Directives

Below are sample AI criteria manifests that are comparable to the three rules from the JumpStart sample above. Each criteria manifest corresponds to a specified converted profile. For this example, assume you have already converted the profiles lx_prof, prog_prof, and generic_prof to AI manifests ai_lx_manifest.xml, ai_prog_manifest.xml, and ai_generic_manifest.xml respectively.

<!-- The following criteria manifest specifies that any Sparc system with Memory size
between 2048Mb and 4096Mb will use the AI manifest, "ai_lx_manifest.xml" which is a
file located in the same directory as this Criteria manifest. -->

<ai_criteria_manifest>
     <ai_criteria name="MEM">
          <range>
              2048
              4096
          </range>
     </ai_criteria>
     <ai_criteria name="ARCH">
          <value>Sparc</value>
     </ai_criteria>

<!-- The criteria manifest references a specific AI manifest and a specific SC manifest
to be used for the installations. The AI and SC manifests are included below, embedded
within the criteria manifest. -->

     <ai_manifest_file URI="./ai_lx_manifest.xml"/>
     <sc_manifest_file name="AI" URI="./sc_manifest1.xml"/>

</ai_criteria_manifest>
<!-- The following criteria manifest specifies that any x86 system will use the
AI manifest, "ai_prog_manifest.xml", which is a file located in the same directory
as this Criteria manifest. -->

<ai_criteria_manifest>
     <ai_criteria name="ARCH">
          <value>i86pc</value>
     </ai_criteria>

<!-- The criteria manifest references a specific AI manifest and a specific SC manifest
to be used for the installations. -->

     <ai_manifest_file URI="./ai_prog_manifest.xml"/>
     <sc_manifest_file name="AI" URI="./sc_manifest1.xml"/>

</ai_criteria_manifest>
<!-- Because the following criteria manifest has no actual criteria specified, it is
the default AI manifest that is given to systems that fail to match any of the above criteria.
The AI manifest file "ai_generic_manifest.xml" is a file located in the same directory
as this Criteria manifest.
Note: For this manifest to be a valid default AI manifest, the "name" directive in the
referenced AI manifest file must be named "default". -->

<ai_criteria_manifest>

<!-- The criteria manifest references a specific AI manifest and a specific SC manifest
to be used for the installations. -->

     <ai_manifest_file URI="./ai_generic_manifest.xml"/>
     <sc_manifest_file name="AI" URI="./sc_manifest1.xml"/>
</ai_criteria_manifest>

Top

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Sign up or Log in to add a comment or watch this page.


The individuals who post here are part of the extended Sun Microsystems community and they might not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them.

© 2010, Oracle Corporation and/or its affiliates
Powered by Atlassian Confluence
Oracle Social Media Participation Policy Privacy Policy Terms of Use Trademarks Site Map Employment Investor Relations Contact