Sun N1 Service Provisioning System User's Guide and Release Notes for the OS Provisioning Plug-In 2.0

Chapter 5 Provisioning the Solaris Operating System

This chapter explains how to use the OS provisioning plug-in to install the Solaris Operating System onto target hosts.

The chapter contains the following information:

JumpStart Enterprise Toolkit (JET) Technology

The OS provisioning plug-in uses the features provided through the JumpStartTM Enterprise Toolkit (JET) technology to provision the Solaris Operating System (OS). JET is an enhancement to the Sun-developed JumpStart technology that automates the installation of the Solaris OS over a network. The OS provisioning plug-in through JET enhances this capability further, while hiding some of the complexity.

JET Modules

JET technology provides the JumpStart server with product-specific modules that install the Solaris OS and other products in a structured way. This structure enhances the features that you can implement through “ad-hoc” scripting of the JumpStart finish script.

The OS provisioning plug-in supplies three JET modules:

Solaris Installation Process through JET

The build sequence of the JumpStart Enterprise Toolkit is as follows:

  1. Standard Solaris installation phase

  2. Call standard JumpStart finish script

  3. Call individual module “install” scripts

  4. Reboot target server

  5. (Optional) Platform related installation tasks; reboot after each level

  6. (Optional) Application related installation tasks; reboot after each level

  7. (Optional) Final installation tasks (no reboot)

  8. login prompt appears on the console

The optional steps after the initial reboot depend on the individual modules configured within the target server template. Modules can be written in such a way that they request that the toolkit perform additional work after the first reboot. In this request, the modules can identify whether the work should be in the platform-related area, the application-related area, or whether the work needs to be done at the end, when no more reboots are planned.

Solaris Provisioning Process Overview

To provision the Solaris Operating System, you must perform these high-level tasks:

  1. Set up the JET server.

  2. Create the Solaris image or attach an existing image to the JET server.

  3. Create a target host.

  4. Install the image onto the target host.

Setting up the Solaris JET Server

The Solaris boot and install server is a JET server.

ProcedureHow to Create the JET Solaris Image Server

You can create a JET image server from the N1 SPS browser interface or command-line interface. To create the server from the command line, type the following command:


# cr_cli -cmd pe.p.run -u admin -p admin -PID NM:/com/sun/n1osp/untyped/Jet-create \
-tar H:NM:biss1 -comp + -vs + -pto 30 -nto 10

To create the server from the browser interface, follow these steps.

Steps
  1. Log into the system that is to be the Solaris boot and install server.

  2. If you currently use the JumpStart enterprise toolkit, remove those files.

    Use the following command: # pkgrm SUNWjet

  3. In the Common Tasks section of the N1 SPS browser interface, select OS Provisioning.

  4. On the OS Provisioning Common Tasks page, click Create in the JET Solaris Image Servers section.

  5. On the Plans Details page, click Run.

  6. Choose variables to use for this plan.

    • To use an existing variables set, select a name from the drop-down menu in the JET component row of the Plan Parameters table.

    • To create a new variables set, click Select from List in the JET component row of the Plan Parameters table.

      1. Click Create Set.

      2. Type a name for the variables set.

      3. Verify variables and change them, if needed.

        The image server component has only a few variables, most of which you are unlikely to change. See Solaris Image Server Component Variables for a list of those variables and their default values.

      4. Save the variables set.

      5. Select the variables set that you just saved from the drop-down menu in the JET component row of the Plan Parameters table.

  7. Select the host on which to create the JET image server.

  8. Click Run Plan (includes preflight).

  9. To verify that the JET image server is created successfully, click the Hosts link in the left side of the provisioning server window.

    You should see the name of the virtual host appended with -jet. For example, if you installed on host masterserver, the virtual host is masterserver-jet.

Solaris Image Server Component Variables

The following variables apply to the image server component.

Table 5–1 Solaris Image Server Component Variables

Variable Name 

Description 

Default Value 

installPath

Location to install JET package. 

/opt/SUNWjet

sps_cli

Location of N1 SPS command-line interface. 

/opt/SUNWn1sps/N1_Service_Provisioning_System_5.1/cli/bin/cr_cli

jetHost

Name to use for the virtual host name. By default, the virtual JET host name is set to the host name of the target host with -jet appended.

:[target]-jet

jetFolder

Folder where you want to store JET-specific information. By default, the JET folder is located in /com/sun/n1osp/autogen-:[jetHost], where :[jetHost] is the virtual JET host name defined in the previous step.

/com/sun/n1osp/autogen-:[jetHost]

templatePrefix

Value to use to identify the OS provisioning JET templates. 

OSP_TEMPLATE_

Creating Solaris Images and Profiles

To provide basic JumpStart functionality, an image of the appropriate Solaris OS media must be installed on the JET server. That image must then be attached to a profile that explains how the image is to be installed.

ProcedureHow to Import a Solaris Image

To provide basic JumpStart functionality, an image of the appropriate Solaris OS media must be installed on the JET server. The version or versions of Solaris to be imported onto the JET server depend on those required by the target servers. You can install multiple versions of the Solaris media on the same JET server at the same time.


Note –

While it is recommended that you copy the media to disk on the JET server, it is not strictly required. You can share the physical media appropriately to allow the target servers to boot from it. However, using the physical media severely restricts the performance of the target server build and minimizes your ability to support multiple versions of Solaris.


Steps
  1. Mount the Solaris DVD on the JET server, either through a local drive, or by using a shared drive on the network.

  2. In the Common Tasks section of the N1 SPS browser interface, select OS Provisioning.

  3. On the OS Provisioning Common Tasks page, click Import in the Solaris Images section.

  4. On the Plans Details page, click Run.

  5. Choose variables to use for this plan.

    • To use an existing variables set, select a name from the drop-down menu in the SolarisImage component row of the Plan Parameters table.

    • To create a new variables set, click Select from List in the SolarisImage component row of the Plan Parameters table.

      1. Click Create Set.

      2. Type a name for the variables set.

      3. Type the Solaris main version number into the version variable.

      4. Type the Solaris minor version number into the release variable.

      5. Verify the remaining variables and change them, if needed.

        The following table describes the additional variables and their default values.

        Variable Name 

        Description 

        Default Value 

        architecture

        Architecture of the physical system, for example, SPARC or x86.  

        sparc

        installPath

        Unique name for the imported Solaris image. 

        Solaris:[version]_:[release]_:[architecture]

        For example: Solaris9_u7_sparc

        image_path

        Path to where imported image will be stored. 

        /export/osp_image/:[installPath]

        image_subnet_addr

        Subnet address of the image server. 

        :[target(/):sys.ipAddress]

        image_subnet_mask

        Subnet mask of the image server 

        255.255.255.0

        media_src

        Path to the image files. By default, the software assumes the files are on a DVD disc. 

        /cdrom/cdrom0/s0

      6. Save the variables set.

      7. Select the variables set that you just saved from the drop-down menu in the SolarisImage component row of the Plan Parameters table.

  6. On the Plan Details Run page, select the JET image server on which to import the image.


    Tip –

    The host name of the JET image server ends in -jet.


  7. Click Run Plan (includes preflight).

ProcedureHow to Create a Solaris Provisioning Profile (Browser Interface)

Before You Begin

Make sure the JET server exists and that the Solaris OS software is available to that server. For more information about creating the JET server, see Setting up the Solaris JET Server. For more information about creating the Solaris image, see How to Import a Solaris Image.

Steps
  1. In the Common Tasks section of the N1 SPS browser interface, select OS Provisioning.

  2. On the OS Provisioning Common Tasks page, click Create Profile in the Solaris Images section.

  3. On the Plans Details page, click Run.

  4. Choose variables to use for this plan.

    • To use an existing variables set, select a name from the drop-down menu in the SolarisImage component row of the Plan Parameters table.

    • To create a new variables set, click Select from List in the SolarisImage component row of the Plan Parameters table.

      1. Click Create Set.

      2. Type a name for the variables set.

      3. Type the Solaris main version number into the version variable.

      4. Type the Solaris minor version number into the release variable.

      5. Verify the remaining variables and change them, if needed.

        The following table describes the additional variables and their default values.

        Variable Name 

        Description 

        Default Value 

        architecture

        Architecture of the physical system, for example, SPARC or x86 

        sparc

        installPath

        Solaris image name to attach 

        Solaris:[version]_:[release]_:[architecture]

        For example: Solaris9_u7_sparc

        image_path

        Path to location where image file resides 

        /export/osp_image/:[installPath]

        image_subnet_addr

        Subnet address of the image server 

        :[target(/):sys.ipAddress]

        image_subnet_mask

        Subnet mask of the image server 

        255.255.255.0

        media_src

        Path to the image files. By default, the software assumes the files are on a DVD disc. 

        /cdrom/cdrom0/s0

      6. Save the variables set.

      7. Select the variables set that you just saved from the drop-down menu in the SolarisImage component row of the Plan Parameters table.

  5. On the Plan Details Run page, select the JET image server on which to create the profile.


    Tip –

    The host name of the JET image server ends in -jet.


  6. If needed, change the Profile Name.

  7. If needed, change the Profile Description.

  8. Update the list of the JET modules to use.

    The JET product modules are located on the JET server in the directory /opt/SUNWjet/Products.

    By default, the plan variable JET Modules Name(s) lists two JET modules to include in the Solaris profile component:

    base_config is the required JET module for basic Solaris installation. All other /opt/SUNWjet/Products modules are optional. Adding a module name to this list adds the module installation function and configuration variables to the newly created Solaris provisioning profile.

    One of the /opt/SUNWjet/Products optional modules is the custom module. The custom module installs arbitrary lists of Solaris packages, patches, and files, and can run arbitrary collections of scripts. See Using the custom Module for further details. You can also write other JET modules. For information about creating JET modules, see Appendix C, Creating Additional JET Modules.

  9. Click Run Plan (includes preflight).

  10. (Optional) Change default profile values.

    1. Navigate to the Solaris folder that contains the new Provision component.

      For example, /com/sun/n1osp/autogen-biss1-jet/provision/.

    2. Click the Solaris provisioning component name.

      For example, Solaris10_0205_sparc.standard.

    3. Edit default values.

      For information about Solaris profile variables, see Appendix B, Solaris Profile Component Variables.

      1. Click the Edit button at bottom of Details page.

      2. Change values.

      3. Click the Check-in button at the bottom of the Details page.

ProcedureHow to Create a Solaris Provisioning Profile (Command-Line Interface)

Steps
  1. To create a variable set for the SolarisImage component, type a command similar to the following example:


    # cr_cli -cmd cdb.vs.add -comp NM:/com/sun/n1osp/untyped/SolarisImage \
    -name "solaris9" -u admin -p admin -vars "version=9;release=u7;architecture=sparc; \
    image_path=/export/install/Solaris9product;image_subnet_addr=10.42.42.2; \
    image_subnet_mask=255.255.255.0;media_src="
    
  2. To provide JET module information, create a file /tmp/solaris-image that contains the following entries:

    standard
    Standard Solaris
    base_config spsra

    Where:

    • The first line in the file corresponds to the Profile Name field in the plan variables section of the browser interface.

    • The second line in the file corresponds to the Profile Description field in the plan variables section of the browser interface.

    • The third line in the file corresponds to the JET Module Name field in the plan variables section of the browser interface.

  3. To run the plan, type a command similar to the following example:


    # cat /tmp/solaris-image|cr_cli -cmd pe.p.run -u admin -p admin
    -PID NM:/com/sun/n1osp/untyped/SolarisImage-create-profile
    -tar H:NM:biss1-jet -comp - -vs solaris9 -pto 30 -nto 10
    

Installing the OS on the Target Host

The actual provisioning component contains a long list of variables that you might modify. A complete list of all available variables is in Appendix B, Solaris Profile Component Variables.

ProcedureHow to Install the OS on the Target Host (Browser Interface)

The following task includes a likely subset of variables for you to change when you install the OS onto a target host.

Steps
  1. In the Common Tasks section of the N1 SPS browser interface, select OS Provisioning.

  2. On the OS Provisioning Common Tasks page, click Provision OS in the Solaris Images section.

  3. Navigate to the Solaris folder that contains the provision component.

    For example, /com/sun/n1osp/autogen-biss1-jet/provision/

  4. Select the Solaris provisioning component name.

    For example, Solaris_9.standard

  5. On the Component Details page, click the Run action next to the Provision_start:Install procedure.

  6. Choose variables to use for this plan.

    • To use an existing variables set, select a name from the drop-down menu in the component name row of the Plan Parameters table.

    • To change values in an existing variables set, click Select from List in the component name row of the Plan Parameters table.

      1. Click the Edit button in the column for the variables set to change.

      2. Verify and change variables as needed.

        A list of variables, their descriptions, and default values is in Appendix B, Solaris Profile Component Variables.

      3. When all values are correct, click the Save button.

      4. Select the variables set that you just saved from the drop-down menu in the component name row of the Plan Parameters table.

    • To create a new variables set, click Select from List in the component name row of the Plan Parameters table.

      1. Click Create Set.

      2. Type a name for the variables set.

      3. Verify or change variable values.

        Although there are many variables that you might modify, you are likely to change only a few. The variable names and prompts in the Component Variables list should enable you to provide appropriate input for the variables. A list of variables, their descriptions, and default values is in Appendix B, Solaris Profile Component Variables.

      4. When all values are correct, click the Save button.

      5. Select the variables set that you just saved from the drop-down menu in the component name row of the Plan Parameters table.

  7. Select the target host on which to provision the OS.


    Tip –

    The target host should have a host name that ends in -target.


  8. Click Run Plan (includes preflight).

    When the plan completes and the Solaris image is installed on the target host, you need to login to the target host. The password for the root user is newroot.

ProcedureHow to Install the OS on the Target Host (Command-Line Interface)

Step

    Type a command similar to the following example and replace the name of the component and target with your component name and target:


    # cr_cli -cmd pe.p.run -u admin -p admin -PID \
    NM:/com/sun/n1osp/autogen-biss1-jet/provision/SolarisProfile-provision-start-Solaris_9.standard \
    
    -tar H:NM:testv240-target -comp + -vs + -pto 60 -nto 60
    

ProcedureHow to Check OS Provisioning Status

Steps
  1. In the Common Tasks section of the N1 SPS browser interface, select OS Provisioning.

  2. On the OS Provisioning Common Tasks page, click Status in the OS Provisioning Administration Tasks section.

  3. On the Plans Details page, click Run.

  4. On the Plan Details Run page, select the target host on which you provisioned the OS.

  5. Select the target host on which to check the provisioning status.

  6. Follow the Details links to view the status.

ProcedureHow to Stop an OS Provisioning Operation

Steps
  1. In the Common Tasks section of the N1 SPS browser interface, select OS Provisioning.

  2. On the OS Provisioning Common Tasks page, click Abort in the OS Provisioning Administration Tasks section.

  3. On the Plans Details page, click Run.

  4. On the Plan Details Run page, select the target host on which you provisioned the OS.

  5. Select the target host on which to stop the provisioning operation.

JET Solaris Server Administration Tasks

ProcedureHow to Import N1 SPS RA Installers

To enable a cross-platform installation (for example, to install x86 platforms from a SPARC system), you need to import the architecture-specific installer to the JET Solaris Image server.

Steps
  1. In the Common Tasks section of the provisioning software page, select OS Provisioning.

  2. On the OS Provisioning Common Tasks page, click Manage in the JET Solaris Image Servers section.

  3. On the Component Details page, click the Run action next to the import_product_media procedure.

  4. Choose the JET Solaris Image server host on which to import the installer, and click Run Selected Installations.

  5. On the Plans Run page, set the plan variables as follows:

    Variable 

    Description 

    Sample Value 

    JET Module Name 

    Name of JET module 

    spsra

    Product Version 

    Version of N1 SPS installer 

    5.1

    Architecture 

    Architecture that applies to RA installer 

    sparc

    Media Path 

    Path to directory that contains the RA installer 

    /net/myothersys/export/ra

  6. Click Run Plan (includes preflight).


    Note –

    To install from imported RA installers, the Solaris Profile used when installing the RA must have the value for “Install RA from snapshot (y,n)” set to n. See Component Variables for N1 SPS Remote Agents.


ProcedureHow to Use JET Server for Boot Params

By default, the OS provisioning server supplies the DHCP target host information for boot configuration. In cases of manual reboot for Solaris target hosts, you can use the JET server as an RARP boot params server instead.

Steps
  1. When you create the Generic Target host, set the osp_control_service variable to FALSE.

    For information about creating the Generic Target host, see Defining a Generic Target Host. Setting the variable to FALSE changes the target host from an OS provisioning-served target host address to a JET-served target host address.

  2. To configure the JET server for RARP boot params service, change the JS_CLIENT_MANAGEMENT value in the /opt/SUNWjet/etc/jumpstart.conf file.

    For example, on a SPARC system:

    JS_CLIENT_MANAGEMENT="bootp"

    Note –

    When booting the target host, an example console boot command to boot and install a target host over the network is boot net - install.


Using the custom Module

You can include the custom module in a Solaris profile component at Solaris Profile creation time. When you create the Solaris profile component, the plan variables include JET Module Name(s).

By default, the Solaris profile component includes two JET modules:

The third available module is custom, which installs arbitrary lists of Solaris packages, patches, and files, and can run arbitrary collections of scripts. To include the custom module in a Solaris profile component, add custom to the JET Module Name(s) plan variable before you create the Solaris profile.

When items in a custom module are installed on the target server, the order of installation is always packages, patches, files, then scripts. If this order does not work for you, you can also create your own JET module. For information about creating JET modules, see Appendix C, Creating Additional JET Modules.

The custom module can be used to install packages and patches at different stages of the build. See Solaris Installation Process through JET.

When you edit the target server template, you can list the names of the additional packages in the configuration variables custom_packages_[1-n], depending on when in the boot sequence the packages need to be installed. Likewise, you can identify patches in the variables custom_patches_[1-n].

Packages and patches are installed in the order given, so you must order them appropriately to satisfy any dependencies between them. If you have many packages or patches, or if a common set is used frequently on several different target servers, consider creating your own module. You might also need to consider this approach if you need to intersperse the installation of packages with patches.

If the product installation includes packages to be installed, a package.matrix file is included which contains a list of supported operating systems and product version numbers with a list of the packages required to be installed. There is also a patch.matrix file which defines the required patches in a similar fashion.

Populating Custom Patch and Package Media

The custom module enables you to define a custom package and patch set on a per target server basis. This module also provides two scripts to enable the package and patch media to be placed in the correct place for the toolkit to find.

When copying patch and package media, the scripts will place the media according to the definitions of JS_PKG_MEDIA and JS_PATCH_MEDIA as found in the toolkit configuration file (/opt/SUNWjet/etc/jumpstart.conf). To use an alternative location to hold all the media, modify the configuration file before executing the scripts.

Custom patches can be placed using the /opt/SUNWjet/bin/copy_custom_patches script:


# copy_custom_patches src-dir patch [patch....] 

This script takes at least two arguments, the first one is the source directory which contains the patches. Any other arguments are then considered to be patch numbers, which are located within the directory and subsequently copied.

Custom packages can be transferred using the /opt/SUNWjet/bin/copy_custom_packages script:


# copy_custom_packages src-dir arch package [package....] 

The arguments are very similar to the arguments used for the custom scripts command, with the inclusion of the additional arch argument, which is used to define the target architecture for the packages. The target architecture will be defined by the output of uname -p on the target server. Currently, the values are either sparc or i386, for SPARC and IA86 architectures respectively.

Custom patches do not need the definition of an architecture, because distinctly numbered patches are released for each architecture for which the package is available.

The custom module cannot contain multiple different versions of the same package for the same architecture. If you need this functionality, consider a specific module to cover these requirements. See Appendix C, Creating Additional JET Modules.

Custom Files

The custom module enables files to be created, overwritten, or appended to on the target server. Files are referenced by a value that defines three items:

For example, for a target server called banana the following line in the custom area of the template would append the contents of the file /opt/SUNWjet/Clients/banana/hosts on the JumpStart server to the file /etc/hosts on the machine banana while it was being built.

custom_files="hosts:a:/etc/hosts"

The source files must be placed correctly before the build of the target server. The files must be located within the /opt/SUNWjet directory tree.


Note –

Do not use absolute paths for the source file.

Do not refer to files that are outside of the tree, such as /etc/hosts or /etc/passwd.


The middle field of the triple specifies whether to append or overwrite the destination file on the target server. If a set of files are common to a number of target servers, consider creating a holding area within the /opt/SUNWjet/Clients directory. Place the common files within that directory. The templates for the target servers can then refer to the files as:

custom_files="../common/hosts:a:/etc/hosts ../common/ftpusers:o:/etc/ftpusers" 

Where the files are placed in /opt/SUNWjet/Clients/common rather than multiple copies in each target server specific directory. Because the template file is a Bourne shell script, you can use regular techniques to continue lines. Use the \ character, or append information to the variable custom_files="${custom_files} ......".

Custom Scripts

Custom scripts are defined by the source location of the script. The toolkit will copy the script to the scratch area on the target server during the build and execute it at the appropriate point.

As with the custom files described in the previous section, the source of the script must be within the /opt/SUNWjet directory. The source also can be a relative reference to a common holding area.

The custom module does not offer any provision for executing scripts before the first reboot, when the system is running on the NFS image from the JumpStart server and the real target server filesystem is mounted on $ROOTDIR (/a).

To execute a script prior to the first reboot, consider creating a module as described in Appendix C, Creating Additional JET Modules.