Migrating From Solaris JumpStart to OpenSolaris Automated Installations
THIS PAGE IS UNDER DEVELOPMENT FOR THE OPENSOLARIS 2010.03 RELEASE AND FOR THE NEXT SOLARIS RELEASE. BE SURE TO LABEL ANY INFORMATION THAT IS SPECIFIC TO THE NEXT SOLARIS RELEASE.
General Comparison: JumpStart and the Automated Installer
The Solaris Custom JumpStart installation method enables you to automatically install or upgrade multiple systems with a Solaris OS, based on profiles that you create. The profiles define specific software installation parameters. You can also incorporate shell scripts to include preinstallation and postinstallation tasks. And, you can use a sysidcfg(4) file to specify configuration information, so that the custom JumpStart installation is completely hands-off.
The tools used to set up Solaris 10 net install servers and Custom Jumpstart configurations are included on the Solaris 10 media itself. For example, when you insert a Solaris 10 DVD into your system, you go to the following directory on the mounted DVD to access the tools used to set up a net install image:
/media/dvd0/Solaris_10/Tools
From this directory, you run the ./setup_install_server script to create a new net install image. This directory also provides various other scripts, such as ./addclient, that are necessary to administer this net install image.
For complete Solaris JumpStart instructions, see the Solaris 10 5/09 Installation Guide: Custom JumpStart and Advanced Installations.
The OpenSolaris Automated Installer is used to automate the installation of the OpenSolaris OS on one or more SPARC and x86 systems over a network. The minimal configuration necessary to use the automated installer is to have one system, installed with the OpenSolaris OS, act as the AI install server. On this install server, you set up an installation service, which is associated with manifests, or specifications, for specific x86 installations 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. The automated installer does a package-based installation from one or more Image Packaging System repositories that are specified in the manifests.
TBD: AI Flow Graphic - see aiinstall.jpg attached to this page.
The tools used to set up an OpenSolaris Automated Install server are packaged as software on the operating system itself. By default, this package is not installed when Opensolaris is installed, but you can easily install the package with the pkg(1) command:
$ pfexec pkg install SUNWinstalladm-tools
Once this package is added on your system, use the installadm(1M) command to administer this system as an Automated Install server.
Also, starting with the OpenSolaris 2010.03 release, you can download a SPARC or x86 automated install image from opensolaris.com and burn it to media. Then, you can boot a SPARC or x86 client system and perform an automated installation off of 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.
TBD: AI from Media Flow Graphic - see bootable.jpg attached to this page.
TBD: Add Finish script replacement procedure
For complete Automated Installation information, including instructions for automated installations from media, see the OpenSolaris Automated Installer Guide.
As you transition from using Solaris JumpStart to using the OpenSolaris Automated Installer, review the following information as needed:
Comparing Features: Solaris JumpStart and Automated Installer
| Can I...? | JumpStart (JS) | Automated Install (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. |
| 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 Upgrade Manager or the pkg image-update command. For complete IPS instructions, see 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 connect with the JS server. |
No, for AI network booting, you must have WANBoot support on the SPARC client systems. Alternatively, 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, you can create a custom JS rules file to identify a group of systems with shared attributes for installation. | Yes, you can create custom AI criteria that are comparable to the JS rules files. See the samples below. |
| Customize how the software is to be installed? | Yes, you can create custom JS profiles with installation specifications. | Yes, you can create custom AI manifests that are comparable to JS profiles. See the samples below. |
| Store install specifications on separate media? | Yes, the 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, the AI manifest can be stored in a customized bootable AI media image, or in a network location via http. |
| Dynamically customize installation parameters? |
Yes, you can 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, you can use dynamic AI manifests to set installation parameters "on the fly" while the install client is booting. (Solaris Next feature) |
| Incorporate shell scripts with preinstallation or postinstallation tasks? | Yes, you can use Begin and Finish scripts with JS. | No. If you want to, you can create an SMF service that runs during first boot. And, you can deliver this service in an IPS package. You can specify that package in the AI manifest, so that the package is installed on your system, and your service would be run on first boot. |
| 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?] |
| 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, an install service is set up on an AI server. This install service can serve clients without explicit client setup. However, if you wish to provide a custom configuration, you can create an explicit setup for a client. |
Comparing Task Maps: Solaris JumpStart and Automated Installer
| JumpStart (JS) | Automated Install (AI) |
|---|---|
| 1. Check system requirements for the version of Solaris 10 that you plan to install. See Solaris 10 10/09 Client System Requirements. | 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 OpenSolaris 2009.06 AI Server Requirements and OpenSolaris 2009.06 AI Client Requirements. |
| 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. ./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 up a pool of IP addresses to be used with this install service. |
| 3. Optional: If you need to set up separate boot server(s) 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, just use the default AI manifest that is provided with the install service. |
| 5. Optional: Create custom begin and finish scripts. | This is not supported for AI. Support for dynamically derived AI manifests is planned for the Solaris Next release. For finish scripts, you can create an SMF service that runs during first boot and deliver the service in an IPS package. Then, you can specify that package in the AI manifest so that the package is installed on your system, and your service would be run on first boot. |
| 6. Create a rules file to correlate the profile to systems with particular attributes. |
Optional: Create a Criteria manifest which includes reference to, or has embedded, an AI manifest. Or, just use the default AI manifest that's provided with the install service. |
| 7. Test your customized specifications. Test the JS rules file and profile to confirm that your changes are valid, by using the check script provided with the Solaris image. ./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. |
Comparing Keywords: Solaris JumpStart Keywords and Automated Installer Fields
The following tables lists the examples of the Rules keywords and Profile keywords for JumpStart. For each keyword, an example of the most comparable field in Automated Installations is listed.
- Jumpstart rules keywords are compared against AI criteria fields.
- Jumpstart profile keywords are compared against fields in the AI manifest file.
Note: JumpStart uses text files. Automated Installer uses XML files.
Rules Keywords
| JS Rules Keyword Example | AI Criteria Field 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. |
| domainname | No comparable criteria. |
| 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. |
| karch i86pc | No comparable criteria. |
| 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. |
| probe | No comparable functionality. |
| totaldisk 300-500 | No comparable criteria. |
| No comparable rule. |
<ai_criteria_name="MAC"> <value>0:3:ba:33:9d:b6</value> </ai_criteria> |
Profile Keywords
| JS Profile Keyword Example | AI Manifest Field Example |
|---|---|
| archive_location | No comparable field |
| backup_media | No comparable field |
| boot_device c0t0d0s0 update |
<ai_target_device> <target_device_name>c0t0d0s0</target_device_name> </ai_target_device>
|
| bootenv | A boot environment is automatically created on installation of the OpenSolaris OS. |
| client_arch | No comparable field |
| client_root | No comparable field |
| client_swap | No comparable field |
| client | No comparable field |
| 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 |
| fdisk c0t3d0 solaris maxfree ...or... fdisk c0t3d0 solaris2 delete |
<ai_target_device> <target_device_name>c0t3d0</target_device_name> </ai_target_device> <ai_device_partitioning> <partition_type>SOLARIS2</partition_type> <partition_action>delete</partition_action> </ai_device_partitioning> |
| filesys | No comparable field |
| forced_deployment | No comparable field |
| 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 info. |
| install_type |
No comparable field |
| 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 info. |
| layout_constraint | No comparable field |
| local_customization | No comparable field |
| metadb | No comparable field |
| no_master_check | No comparable field |
| no_content_check | No comparable field |
| num_client | No comparable field |
| 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 fields are omitted from the AI manifest, a default partitioning is automatically used. |
| patch | No comparable field |
| pool | No comparable field |
| root_device | No comparable field |
| system_type | No comparable field |
| usedisk | No comparable field |
Examples: Converting Sample JumpStart Rules and Profile to AI Manifest Fields
Sample JumpStart Profile
profile keywords profile values install_type initial_install system_type standalone fdisk c0t0d0 solaris maxfree cluster SUNWCall cluster SUNWCstaroffice cluster SUNWevo
The JS profile above states that:
- 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.
The following excerpts from Automated Installer manifests show how you could convert the JS profile above into a fields 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> <!-- 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>
<!-- 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
rule keywords and rule values begin script profile finish script memsize 2048-4096 && model SUNW - lx_prof - arch i86pc - prog_prof - any - generic_prof -
The sample rules file above identifies 3 basic groups of systems, and each group is assigned a different profile.
This sample rules file states that:
- 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.
Note: No begin or finish scripts are specified for any of the 3 alternatives.
Below are sample AI Criteria manifests that are comparable to the three rules from the JS sample above. Each criteria manifest correlates to a specified converted profile. In this example, let's assume you've already converted the profiles, "lx_prof", "prog_prof", and "generic_prof" to AI manifests "ai_lx_manifest.xml", "ai_prog_manifest.xml", "ai_generic_manifest.xml" accordingly.
<!-- 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 to 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" field 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>

