Sun N1 Service Provisioning System User's Guide for OS Provisioning Plug-In 3.0

Chapter 7 Provisioning the SuSe Linux Operating Environment

This chapter explains how to use the OS provisioning plug-in to install the SuSe Linux operating system onto target hosts.

SuSe AutoYaST Technology

The OS provisioning plug-in uses SuSe AutoYaST technology.

SuSe Linux Provisioning Process Overview

  1. Set up the SuSeLinux image server.

  2. Create the SuSe Linux image or attach an existing image to the image server.

  3. Create a target host.

  4. Install the OS onto the target host.

Setting up the SuSe Linux Server

The OS provisioning plug-in uses the features provided through the JumpStart Enterprise Toolkit (JET) technology in conjunction with the AutoYaST functionality to provision the SuSe Linux Operating System (OS). When you set up a SuSe Linux server, you create JET modules that run AutoYaST operations to provision the OS. For more information about JET, see JumpStart Enterprise Toolkit (JET) Technology.

The SuSe Linux boot and install server includes the following software:

Preparing Your Network to Provision the SuSe Linux OS

Before you create the SuSe Linux image server, you need to perform the following tasks.

ProcedureHow to Set up TFTP Access

If you use JET to create your SuSe Linux image server, the TFTP service is automatically configured to support provisioning. You need to create or copy additional directories and files to the TFTP root directory on the boot and install server. The OS distribution should be accessible through NFS for each subnet served from this boot and install server.

Before You Begin

Be sure that the appropriate TFTP server software is installed on the boot and install server.

Steps
  1. Copy or create the following directories under the TFTP root directory:


    Note –

    This task uses /tftpboot as an example of the TFTP root directory.


  2. For SuSe Linux provisioning profiles that do not use JET, copy the following files to the TFTP root directory

    • linux – The installation kernel found on the first CD of the distribution, in boot/loader/.

    • initrd – The installation RAM disk found on the first CD of the distribution, in boot/loader/.

    If you want to support provisioning of multiple releases of the SuSe Linux OS, assign a unique name to this file, such as linux_9.

Copying the SuSe Linux Files

To create SuSe Linux OS images, you copy the files from the product media to a boot and install server or other system that is accessible over the network through NFS. You can locate these copies on a system that is running either the SuSe Linux OS or the Solaris OS. You are not required to locate these copies on your SuSe Linux boot and install server.

To copy the SuSe Linux files, you extract the contents of the product CDs into specific directory structure. For instructions about how to copy the SuSe Linux files, see http://www.suse.com/~ug/AutoYaST_FAQ.html#a6.

If you locate these copies on a system that is not the boot and install server, the copies must meet the following criteria.

Creating a SuSe Linux Image Server

After you copy the SuSe Linux images, you need to create the SuSe Linux image server, or boot and install server, in your N1 SPS environment. You must make the boot and install server an N1 SPS Remote Agent, and add the boot and install server as a Remote Agent to the Master Server.

ProcedureHow to Create the SuSe Linux Image Server (Browser Interface)

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

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

  2. On the OS Provisioning Common Tasks page, click Create in the Linux Image Servers 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 LinuxServer component row of the Plan Parameters table.

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

      1. Click Create Set.

      2. Type a name for the variables set.

      3. If needed, change the linuxHost variable to the location of the command-line interface.

        By default, the virtual Linux host name is set to the host name of the target host with -linux appended.


        Caution – Caution –

        Do not modify the installPath or the boot_server_tftp_root_directory variables.


      4. Save the variables set.

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

    • If you want to use another component's variable settings, click Import Set From Component.

      The Import Variable Settings window displays.

      1. If necessary, navigate to the Folder that contains the component with the variable settings you want to import.

      2. Select the component version.


        Note –

        Variable settings can vary between component versions. Ensure that the current components and the component from which you want to import variable settings share common variables. If the component from which you want to import variable settings does not share common variables with the component you want to use in your plan, the variable settings are not imported.


      3. Click Import Variable Settings.

        The variables settings are imported, and are displayed in the table.

      4. On the Plan Details Run page, select the variable settings that you imported from the Variable Settings drop-down list, then click Select.

    • If you want to use component variable settings that are stored in a file, follow these steps.

      1. In the Import Sets from File text field, enter the path to the variable settings file that you want to use.

        To browse through the file system to find the appropriate file, click the Browse button.

      2. Click Import.

        The variables settings are imported, and are displayed in the table.


        Note –

        If the file from which you want to import variable settings does not share common variables with the component you want to use in your plan, the variable set is not imported.


      3. On the Plan Details Run page, select the variable settings that you imported from the Variable Settings drop-down list, then click Select.

  5. Select the host on which to create the Linux image server.

  6. Click Run Plan (includes preflight).

  7. To verify that the 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 -linux. For example, if you installed on host bikickstart, the virtual host is bikickstart-linux.

    These steps install the SUNWjet, JetRedHat, and JetSuse packages on the boot and install server. The SUNWjet package sets up the TFTP server and the NFS share for the JET base directory, /opt/SUNWjet by default.

Troubleshooting

If your OS provisioning server is located on the same physical host as the boot and install server, you must configure the interfaces on the system before your provision any target hosts. The OS provisioning server does not automatically configure the interfaces of the boot and install server.

ProcedureHow to Create the SuSe Linux Image Server (Command-Line Interface)

You can create a SuSe Linux image server from the N1 SPS browser interface or command-line interface.

Before You Begin

The autoyast file should be placed on the SuSe Linux boot and install server in an NFS exported directory so that the target hosts can locate it, for example, /export/autoyast.

Step

    To create the server from the command line, type commands similar to the following:


    # cr_cli -cmd cdb.vs.add -comp NM:/com/sun/n1osp/untyped/LinuxServer \
    -name "linuxserver" -u admin -p admin -vars "boot_server_tftp_root_directory=/tftpboot"
    # cr_cli -cmd pe.p.run -u admin -p admin \
    -PID NM:/com/sun/n1osp/untyped/LinuxServer-create \
    -tar H:NM:bikickstart -comp + -vs linuxserver -pto 30 -nto 10
    

    These commands install the SUNWjet, JetRedHat, and JetSuse packages on the boot and install server. The SUNWjet package sets up the TFTP server and the NFS share for the JET base directory, /opt/SUNWjet by default.

Troubleshooting

If your OS provisioning server is located on the same physical host as the boot and install server, you must configure the interfaces on the system before your provision any target hosts. The OS provisioning server does not automatically configure the interfaces of the boot and install server.

Creating SuSe Linux Images and Profiles

After you create your SuSe Linux image server, you need to create the provisioning images and profiles.

Creating SuSe Linux Images and Profiles With JET

The JumpStart Enterprise Toolkit (JET) is a set of utilities that simplifies the process of creating the profiles necessary to provision the SuSe Linux. Through the N1 SPS browser interface, you can generate the profile keywords and values that are required to perform an automated Kickstart installation of your target host.

If you prefer to not use JET, and create the profile values manually, you can create the SuSe Linux image and profile without using JET modules. See Creating Non-JET SuSe Linux Images and Profiles.

ProcedureHow to Create a SuSe Linux Provisioning Profile With JET (Browser Interface)

Before You Begin

Make sure the Linux image server exists and that the SuSe Linux operating system software is available to that server. For more information about creating the SuSe Linux image server, see Setting up the SuSe Linux 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 Create Profile in the SuSe Linux 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 LinuxImage component row of the Plan Parameters table.

    • To create a new variables set, click Select from List in the LinuxImage 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 following table describes the additional variables and their default values.

        Variable Name 

        Description 

        Default Value/Example 

        osp_server

        Virtual server representing the OS provisioning service 

        masterserver-osp (Default)

        version

        Version of Linux to be deployed by this component 

        SLES9 (Example)

        architecture

        Architecture of the physical system, for example, x86 


        Note –

        This value is used to name the profile component and OS image. The value of this variable is not validated or enforced by the provisioning software.


        x86 (Default)

        installPath

        SuSe Linux image name to attach 

        SuSeLinux:[version]_:[architecture]

        For example: SuSeLinux_SLES9_x86

        description

        Optional description for this profile 

        test linux (Example)

        min_disk_size

        Minimum disk space required to provision the SuSe Linux OS 

        10GB (Default)

        boot_server_name

        Name of SuSe Linux boot and install server 

        masterserver (Example)

        boot_server_subnet_address

        Subnet served by the boot and install server 

        10.10.31.0 (Example)

        boot_server_subnet_ip_address

        IP address of the boot and install server on the subnet 

        10.10.31.1 (Example)

        image_subnet_mask

        Netmask of the provisioning subnet 

        255.255.255.0 (Default)

        distro_root_directory

        Absolute path of the base directory of the SuSe Linux distribution on the boot server 

        nfs://10.10.31.4/Suse/SLES-9-x86-64/installroot (Example)

        kernel

        (JET profiles only) 

        Relative path to the kernel in the OS image 

        Do not specify a value for this variable for non-JET profiles. 

        boot/loader/linux (Default)

        initrd

        (JET profiles only) 

        Relative path to initrd in the OS image

        Do not specify a value for this variable for non-JET profiles. 

        boot/loader/initrd (Default)

        autoyast_file

        (Non-JET profiles only) 

        Absolute path of the AutoYaST file on the boot server 

        Do not specify a value for this variable for JET-generated profiles. 

        N/A 

        pxe_boot_file

        (Non-JET profiles only) 

        Relative path from the /tftpboot directory of the pxelinux.0 boot file on the boot server

        Do not specify a value for this variable for JET-generated profiles. 

        N/A 

        pxe_configuration_file

        (Non-JET profiles only) 

        Relative path from the pxelinux.cfg directory of the PXE Linux configuration file on boot server

        Do not specify a value for this variable for JET-generated profiles. 

        N/A 

        SuSelinux_component_folder

        Location of autogenerated SuSe Linux Provision component folder 

        /com/sun/n1osp/autogen-:[target(..):sys.hostName]-linux (Default)

      4. Save the variables set.

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

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


    Tip –

    The host name of the Linux image server ends in -linux.


  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 SuSe Linux profile component:

    base_config is the required JET module for basic SuSe Linux 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 SuSe Linux provisioning profile.

  9. Verify that the Use the Jet Modules Specified Above checkbox is selected.

  10. Click Run Plan (includes preflight).

  11. To verify that the Linux profile is created to the Linux image server, click Components in the left pane of the N1 SPS browser interface.

    You should find a provision component in the folder /com/sun/n1osp/autogen-server-name-linux/provision/, where server-name is the Linux server name that you provided in the variable set. For example: /com/sun/n1osp/autogen-SuSe_SLES9_x86-linux/provision/.

ProcedureHow to Create a JET SuSe Linux Provisioning Profile (Command-Line Interface)

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


    # cr_cli -cmd cdb.vs.add -comp NM:/com/sun/n1osp/untyped/SuseLinuxImage \
    -name "SLES9" -u admin -p admin -vars "osp_server=masterserver-osp;version=9; \
    architecture=x86;installPath=SuSeLinux:[version]_:[architecture]; \
    description=SUSE SLES9;min_disk_size=10GB; \
    boot_server_name=biautoyast;boot_server_subnet_address=10.42.42.0; \
    boot_server_subnet_ip_address=10.42.42.3; \
    distro_root_directory=nfs://10.42.42.3/export/SUSE/SLES-9-x86-64/installroot;\
    pxe_boot_file=;pxe_configuration_file=; \
    autoyast_file=;kernel=boot/loader/linux;initrd=boot/loader/initrd"
    
  2. To run the plan, type a command similar to the following example:


    # cr_cli -cmd pe.p.run -u admin -p admin \
    -PID NM:/com/sun/n1osp/untyped/SuSeLinuxImage-create-profile \
    -tar H:NM:bilinux-linux -comp - -vs SLES9 -pto 30 -nto 10 \
    -f /tmp/suse-profile
    

    Note the default N1 SPS user value you specified with the -u option. This user must exist after the OS installation for the N1 SPS Remote Agent software to start on the target host.

Creating Non-JET SuSe Linux Images and Profiles

If you prefer to manually create the SuSe Linux images and profiles, you can create the SuSe Linux image and profile without using JET modules. This section describes how to create non-JET SuSe Linux images and profiles.

If you prefer to use JET to generate your images and profiles, see Creating SuSe Linux Images and Profiles With JET.

ProcedureHow to Create a PXE Configuration File for SuSe Linux OS Provisioning

To deploy non-JET SuSe Linux images to your target hosts, you need to manually create a PXE configuration file. This file contains parameters specific to each hardware platform and SuSe Linux distribution.

Steps
  1. In a text editor, create a file with the following text.

    default sles
    serial 0 9600
    label sles
    kernel linux
    append console=ttyS0,9600 load_ramdisk=1 initrd=initrd textmode=1

    Where:

    • The first line (default) indicates to use label sles and do a AutoYaST installation

    • The third line (label) defines a label sles.

    • The fourth line (kernel) identifies the kernel to load. The path is relative to pxelinux.0.

    • The fifth line (append) contains a series of network configuration parameters. The append parameters must be all on one line. The specific parameters shown here are as follows:

      console=ttyS0,9600 specify console parameters to show the installation output on the console. The parameters vary depending on the target hardware platform.

      load_ramdisk indicates to use initrd for the RAM disk. The path for the RAM disk is relative to pxelinux.0

  2. Save this file to the pxelinux.cfg subdirectory of the TFTP root directory on the boot and install server.

    If you want to support provisioning of multiple releases of the SuSe Linux OS, assign a unique name to this file, such as sles9.cfg

ProcedureHow to Create a Non-JET SuSe Linux Provisioning Profile (Browser Interface)

Before You Begin

Make sure the Linux image server exists and that the SuSe Linux operating system software is available to that server. For more information about creating the SuSe Linux image server, see Setting up the RedHat Linux Server.

Create a PXE Linux configuration file, and locate this file in the pxelinux.cfg directory on the boot and install server. For an example of the PXE Linux configuration file, see How to Create a PXE Configuration File for SuSe Linux OS Provisioning.

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

  2. On the OS Provisioning Common Tasks page, click Create Profile in the SuSe Linux 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 LinuxImage component row of the Plan Parameters table.

    • To create a new variables set, click Select from List in the LinuxImage 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 following table describes the additional variables and their default values.

        Variable Name 

        Description 

        Default Value/Example 

        osp_server

        Virtual server representing the OS provisioning service 

        masterserver-osp (Default)

        version

        Version of Linux to be deployed by this component 

        SLES9 (Example)

        architecture

        Architecture of the physical system, for example, x86 


        Note –

        This value is used to name the profile component and OS image. The value of this variable is not validated or enforced by the provisioning software.


        x86 (Default)

        installPath

        SuSe Linux image name to attach 

        SuSeLinux:[version]_:[architecture]

        For example: SuSeLinux_SLES9_x86

        description

        Optional description for this profile 

        test linux (Example)

        min_disk_size

        Minimum disk space required to provision the SuSe Linux OS 

        10GB (Default)

        boot_server_name

        Name of SuSe Linux boot and install server 

        masterserver (Example)

        boot_server_subnet_address

        Subnet served by the boot and install server 

        10.10.31.0 (Example)

        boot_server_subnet_ip_address

        IP address of the boot and install server on the subnet 

        10.10.31.1 (Example)

        image_subnet_mask

        Netmask of the provisioning subnet 

        255.255.255.0 (Default)

        distro_root_directory

        Absolute path of the base directory of the SuSe Linux distribution on the boot server 

        nfs://10.10.31.4/Suse/SLES-9-x86-64/installroot (Example)

        kernel

        (JET profiles only) 

        Relative path to the kernel in the OS image 

        Do not specify a value for this variable for non-JET profiles. 

        N/A 

        initrd

        (JET profiles only) 

        Relative path to initrd in the OS image

        Do not specify a value for this variable for non-JET profiles. 

        N/A 

        autoyast_file

        (Non-JET profiles only) 

        Absolute path of the AutoYaST file on the boot server 

        Do not specify a value for this variable for JET-generated profiles. 

        nfs://10.10.31.4/export/v20z/sles9.xml (Example)

        pxe_boot_file

        (Non-JET profiles only) 

        Relative path from the /tftpboot directory of the pxelinux.0 boot file on the boot server

        Do not specify a value for this variable for JET-generated profiles. 

        v20z/suse/pxelinux.0 (Example)

        pxe_configuration_file

        (Non-JET profiles only) 

        Relative path from the pxelinux.cfg directory of the PXE Linux configuration file on boot server

        Do not specify a value for this variable for JET-generated profiles. 

        as21-console (Example)

        SuSelinux_component_folder

        Location of autogenerated SuSe Linux Provision component folder 

        /com/sun/n1osp/autogen-:[target(..):sys.hostName]-linux (Default)

      4. Save the variables set.

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

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


    Tip –

    The host name of the Linux image server ends in -linux.


  6. If needed, change the Profile Name.

  7. If needed, change the Profile Description.

  8. Deselect the checkbox for Use the Jet Modules Specified Above.

  9. Click Run Plan (includes preflight).

  10. To verify that the Linux profile is created to the Linux image server, click Components in the left pane of the N1 SPS browser interface.

    You should find a provision component in the folder /com/sun/n1osp/autogen-server-name-linux/provision/, where server-name is the Linux server name that you provided in the variable set. For example: /com/sun/n1osp/autogen-SuSeLinuxSLES9_x86-linux/provision/.

ProcedureHow to Create a Non-JET SuSe Linux Provisioning Profile (Command-Line Interface)

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


    # cr_cli -cmd cdb.vs.add -comp NM:/com/sun/n1osp/untyped/SuSeLinuxImage \
    -name "SLES9x86" -u admin -p admin -vars "osp_server=masterserver-osp;version=SLES9; \
    architecture=x86;installPath=SuSeLinux:[version]_:[architecture]; \
    description=SUSE SLES9;min_disk_size=10GB; \
    boot_server_name=bilinux;boot_server_subnet_address=10.42.42.0; \
    boot_server_subnet_ip_address=10.42.42.3; \
    autoyast_file=nfs://10.10.31.4/export/v20z/sles9.xml;\
    pxe_boot_file=pxelinux.0;pxe_configuration_file=pxesles9"
    
  2. To provide JET module information, create a file /tmp/suse-profile that contains the following entries:

    standard-nojet
    Standard Linux
    base_config
    false

    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.

    • The fourth line in the file corresponds to the Use the Jet Modules Specified Above checkbox in the plan variables section of the browser interface.

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


    # cr_cli -cmd pe.p.run -u admin -p admin \
    -PID NM:/com/sun/n1osp/untyped/SuseLinuxImage-create-profile \
    -tar H:NM:bilinux-linux -comp - -vs SLES9x86 -pto 30 -nto 10
    -f /tmp/suse-profile 
    

    Note the default N1 SPS user value you specified with the -u option. This user must exist after the OS installation for the N1 SPS Remote Agent software to start on the target host.

Installing the OS on the Target Host

Profiles are used to provision OS Images to target Hosts. These Profiles are found in /com/sun/n1osp/autogen...provision folders. One new Profile is added to a provision folder each time a new OS Image is created (or attached).

ProcedureHow to Install the OS on the Target Host

Before You Begin

Verify that the target host BIOS is set to the correct day and time. If the day and time in the BIOS is set to a past date, the installation of the suse-build-key RPM fails, and the installation switches to interactive mode. This failure occurs because the BIOS does not accept the RPM encryption keys that are used by the distribution, as these keys appear to apply to a future day and time.

Ensure that the network interfaces on the boot and install server are properly configured.

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

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

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

    For example, /com/sun/n1osp/autogen-bikickstart-linux/provision/suse/SLES9_x86

  4. Select the component name.

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

  6. Select the target host on which to provision the operating system.


    Tip –

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


  7. Click Run Plan (includes preflight).

ProcedureHow to Check OS Provisioning Status

Steps
  1. In the Common Tasks section of the provisioning software page, 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 operating system.

  5. Click Run Plan (includes preflight).

  6. Follow the Details links to view the status.

Deleting SuSe Linux Images and Profiles

You might want to periodically delete unused OS images and profiles from your N1 SPS environment.

ProcedureHow to Delete SuSe Linux OS Images

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 SuSe Linux Images section.

  3. On the Components Details page, select the checkbox for Uninstall: Delete.

  4. Click Run.

    The SuSe Linux OS image is removed from the N1 SPS environment. The image does not appear in the list of images in the View link for SuSe Linux Images section.


    Note –

    The SuSe Linux OS image is not removed from the boot and install server.


ProcedureHow to Delete SuSeLinux OS Profiles

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

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

  3. On the Components page, select the checkbox for the profile that you want to delete.

  4. Click Delete.