20.2 Creating RPM Bundles

You can use the ZENworks Control Center or the zlman command line utility to create bundles. The following procedure explains how to create a bundle using the ZENworks Control Center. If you prefer the zlman command line utility, see the Bundle Commands section of zlman (1).

  1. In the ZENworks Control Center, click the Bundles tab.

  2. In the Bundle list, click New, then click Bundle to display the Select Bundle Type page.

    Step 1: Select Bundle Type page
  3. Select RPM package bundle (the default option), then click Next to display the Name and Description page.

    For information about the other bundle types, see Section VI, Preboot Services, Section 23.0, Using Dell Update Package Bundles, and Section 20.3, Creating File Bundles.

    Step 2: Name and Description page
  4. Fill in the fields:

    • Name: (Required) Provide a unique name for the RPM bundle. The name you provide displays in the ZENworks Control Center interface, which is the administrative tool for ZENworks Linux Management.

      For more information, see Section C.0, Naming Conventions in the ZENworks Control Center.

    • Display name: Provide a name that displays for users in the ZENworks Linux Management Update Client (installed on managed devices during the ZENworks Agent installation) when they update software. The display name can be the same name that you provided in the Name field; however, you can choose to make the name more intuitive for users.

    • Folder: Type the name or browse to the folder that this bundle will be created in. Folders display in the ZENworks Control Center. The default folder is /Bundles.

    • Ensure this Bundle Stays Installed on all Assigned Devices (Ensure Persistence): (Selected by default.) If this option is selected, the packages inside the RPM bundle are initially installed according to the bundle's schedule and the packages are reinstalled on assigned devices if they are removed in the future. If this option is not selected, the packages are installed initially according to schedule, but the packages are not checked to see if they have been removed from assigned devices and the packages are never reinstalled. This option applies to RPM bundles only; it does not apply to preboot, file, or Dell Update Package (DUP) bundles.

    • Description: Provide a short description of the bundle's contents. This description displays in the ZENworks Control Center and in the ZENworks Linux Management Updater applet, which is the user interface for updating software.

  5. Click Next to display the Packages page.

    Use the Packages page to upload RPM packages to the bundle or to import RPM packages contained in the ZENworks Linux Management package repository. The packages that you upload to a bundle must already exist on the local device on which you are running the ZENworks Control Center. During the bundle-creation process, packages are copied to the ZENworks Server and placed in the package repository (/var/opt/novell/zenworks/pkg-repo).

    Packages page
  6. Add the RPM packages to include in the bundle using the Upload RPM and the Import from Repository options.

    You can use either the Upload RMP option or the Import from Repository option, or you can use both options, depending on your needs.

    After you upload or import packages into the list, you can view the details of a selected package by clicking the underlined link in the Name column. You can remove a selected package from the list by using the Remove option.

    1. (Optional) Click Add > Upload RPM to open the RPM File Upload dialog box, then fill in the fields:

      RPM File Upload dialog box

      Add file: Click Add File to open the RPM File Upload dialog box. Browse to and select the RPM packages that you want to add to the bundle. The RPM packages must be located on the local device on which you are running the ZENworks Control Center. Click OK to upload the packages to the ZENworks Linux Management server. The package repository is the /var/opt/novell/zenworks/pkg-repo directory on the ZENworks Server.

      Target platforms: Select one or more platforms from the Target Platforms list. You can press Shift+click or Ctrl+click to select multiple platforms.

      The target platform is the platform of the devices that the package will be installed on. ZENworks Linux Management does not auto-detect the target platform by examining the RPM packages because RPM packages are not limited to working on only one platform; RPM packages can be created to work on multiple platforms. For this reason, the administrator must select the platform of the target devices.

      NOTE:Bundles can be installed on any platform; bundles are not platform-specific. The packages contained in bundles are platform-specific and can be installed only on devices supporting the specified platform.

      You can, however, create a bundle containing several packages that apply to various Linux platforms. When the bundle is assigned to a group of devices or to a folder that contains devices running on different platforms, each managed device gets the appropriate packages installed.

      For example, you could create a bundle containing two packages: PackageA and PackageB. PackageA applies to suse-93-i586, rhel-3es-i386, and sles-9-i586. PackageB applies to rhel-3es-i386 only. If you assign the bundle to a folder containing three devices, with each device running one of these platforms, the bundle will be installed on all three devices; however, PackageA will be installed on all three devices and PackageB will be installed only on the device running rhel-3es-i386.

      For this reason, the ZENworks Control Center might indicate that a bundle is effective for a device even if one or several packages contained in the bundle was not installed.

      If you want a bundle to be platform-specific, you must use a script and have the script verify the target platform before deploying and installing the bundle.

      Install type: Use the Install type drop-down list to choose from the following installation options:

      • Auto-detect: Automatically detects whether the bundle is already installed on assigned devices and either installs the bundle or updates an existing bundle, if necessary. Basically, the Auto-detect option determines whether the Update or the Install option functionality (explained below) is best, and then performs that operation. Any kernel packages are installed using the Install option functionality; other packages are installed using the Update option functionality. This is the default option and should be used in most situations.

      • Update: Updates the packages on assigned devices if the packages in the bundle are newer than what is installed on the devices. If the packages are not installed on the assigned devices, ZENworks Linux Management installs them. With the Update option, you don't need to worry whether a package is already installed because the package is either updated (if needed) or installed on the device. Parallel installation of a package is not possible with the Update option.

      • Install: Installs the bundle on all assigned devices. If previous versions of the packages exist on the devices, ZENworks Linux Management does not update the existing packages. As a result, packages can be installed multiple times (parallel installations), which might cause overlap issues. This option is rarely used; you should use the default option, Auto-detect, under most circumstances. You should use this option almost exclusively to install kernel packages.

      Freshen (upgrade only if installed): Use this option to transact a package only if a previous version of the package is already installed on the device. You can use the Freshen option in conjunction with the Auto-detect, Update, or Install options.

    2. (Optional) Click Add > Import from repository to open the Package Import dialog box, then select the packages to import. You can use the Search options on the right side of the Package Import dialog box to locate packages.

    3. Select an install type from the drop-down list:

      • Auto-detect: Automatically detects whether the bundle is already installed on assigned devices and either installs the bundle or updates an existing bundle, if necessary. Basically, the Auto-detect option determines whether the Update or the Install option functionality (explained below) is best, and then performs that operation. Any kernel packages are installed using the Install option functionality; other packages are installed using the Update option functionality. This is the default option and should be used in most situations.

      • Update: Updates the packages on assigned devices if the packages in the bundle are newer than what is installed on the devices. If the packages are not installed on the assigned devices, ZENworks Linux Management installs them. With the Update option, you don't need to worry whether a package is already installed because the package is either updated (if needed) or installed on the device. Parallel installation of a package is not possible with the Update option.

      • Install: Installs the bundle on all assigned devices. If previous versions of the packages exist on the devices, ZENworks Linux Management does not update the existing packages. As a result, packages can be installed multiple times (parallel installations), which might cause overlap issues. This option is rarely used; you should use the default option, Auto-detect, under most circumstances. You should use this option almost exclusively to install kernel packages.

    4. (Optional) Select the Freshen option.

      The Freshen option transacts a package only if a previous version of the package is already installed on the device. You can use the Freshen option in conjunction with the Auto-Detect, > Update, or Install options.

  7. Click Next to display the Scriptable Actions page.

    The Scriptable Actions page lets you configure the script engine that you want to use and the scripts you want to execute.

    Distribution Scripts page

    As part of the process of distributing a bundle, ZENworks Linux Management can launch scriptable actions that will be executed before and after the bundle is distributed, installed, and uninstalled. For example, you can get data files from a Web server before installing an application that uses them, run applications, and so forth.

    NOTE:You can configure multiple scripts for each bundle. Repeat the configuration process as many times as desired, choosing different options from the Scriptable Action and Executable Type drop-down lists, explained below.

  8. Click New to display the New Scriptable Action dialog box.

  9. Fill in the fields:

    1. Scriptable Action: Select one of the following actions:

      • Pre-distribution/post-distribution: Lets you perform tasks that must be done before or after a bundle is deployed to assigned devices. Deploying a bundle means that the packages or files inside the bundle are downloaded from the ZENworks server to the assigned devices. The packages and files are not yet available for use.

      • Pre-installation/post-installation: Lets you perform tasks that must be done before or after a bundle is installed. Installing a bundle means that the software packages and files are installed to assigned devices and available for use.

      • Pre-uninstallation/post-installation: Lets you perform tasks that must be done before a bundle is uninstalled. Uninstalling a bundle means that the software packages and files are uninstalled on assigned devices and no longer available for use.

    2. Executable type: Select one of the following actions:

      • Script: Specify a shell script that executes on assigned devices.

      • Binary: Specify an executable program that runs on assigned devices.

      • Java: Specify a Java executable class that launches on assigned devices.

    3. Maximum waiting time: Select one of the following options:

      • Do not wait: Specify that the ZENworks Management Daemon (ZMD) does not block while the script completes.

      • Wait until the program completes the execution: Specify that ZMD blocks until the script completes.

      • Wait for _ sec: Specify that ZMD blocks until the script completes and the specified number of seconds expires.

    4. (Conditional) If you chose Script in Step 9.b, fill in the fields:

      • Script to run: Choose an option from the drop-down list:

        • Specify a file: Lets you specify a file that is already on the device on which you are running the ZENworks Control Center. If you choose this option, fill in the remaining fields in the dialog box, as described below.

        • Define your own script: Lets you type a script in the ZENworks Control Center. If you choose this option, a text box displays where you type your script. This script is delivered to the assigned devices as part of the bundle and is executed in the standard device shell environment. With this option, there are no additional options to configure.

      • Script filename: (Required) Specify the path to the script file on the target device, for example, /usr/local/xyz.pl.

      • Script parameters: Specify any additional parameters you want to place on the command line after the script filename is specified. This results in parameters being passed to your executable script.

      • Script engine: (Required) Specify the interpreter that launches to run your script, for example, /usr/local/bin/perl.

      • Script engine parameters: Specify any parameters you want included on the command line when the script engine launches.

    5. (Conditional) If you chose Binary in Step 9.b, fill in the fields:

      • Executable filename: (Required) Specify the path to the executable file. This file must already exist on the device on which you are running the ZENworks Control Center.

      • Executable file parameters: Specify any additional parameters you want to place on the command line when the executable file launches.

    6. (Conditional) If you chose Java in Step 9.b, fill in the fields:

      • Java program name: (Required) Type the class path to the class file you want to launch, for example, com.novell.TestProg.

      • Program parameters: Specify any additional parameters to pass to the Java class at execution time.

      • Java Runtime Executable (JRE): (Required) Specify the path to the JRE* that launches the class, for example, /usr/local/JRE/bin/java. The JRE must be already installed on the assigned device.

      • JRE parameters: Specify any parameters you want to pass to the JRE system, for example, -cp/usr/lib/tools.jar.

  10. Click Next to display the Summary page, then review the information on the Summary page, making any changes to the bundle settings by using the Back button as necessary.

    Depending on your needs, you can create the bundle now or you can configure additional options for this bundle.

  11. Click Finish to create the bundle as configured per settings on the Summary page. If you click Finish, the bundle is created but it does not have devices assigned, a schedule, and so forth. At some point in the future, you need to configure additional options for the bundle by continuing with Section 20.4, Assigning Bundles.

    or

    Click Next to display the Bundle Assignment page to perform the following tasks:

    • Specify assignments for this bundle

    • Specify special flags, such as flags to specify to remove conflicting packages or trying a dry run to test a bundle's deployment

    • Specify the deployment schedule for this bundle

    • Specify the installation schedule for this bundle

    • Specify groups for this bundle

    Bundle Assignments page
  12. Assign the bundle to the devices that you want to distribute the bundle to.

    1. Click Add to browse for and select the appropriate Server or Workstation objects.

      You can also select Folder or Group objects.

    2. Click the down-arrow next to Servers or Workstations to expand the list, then click the underlined link in the Name column to select the desired objects and display their names in the Selected list box.

      Assigning a bundle to a Folder or Group object is the preferred method of assigning the bundle. Assigning the bundle to a large number of objects (for example, more than 250) might cause increased server utilization.

    3. Click OK.

  13. Click Next to display the Bundle Options page.

    Special Flags page
  14. (Optional) Specify the desired Special Flag options:

    • Remove conflicting packages: Select this option to specify that conflicting packages and files are uninstalled from devices before installing new packages and files. By default, this option is selected, so conflicting packages and files (previous versions of the same package, for example) are uninstalled before the current package or file is installed. If this option is not selected, packages and files are not installed if a conflict is detected.

    • Attempt a dry run: Select this option to have ZENworks Linux Management perform a test to determine if the RPM bundle or files can be successfully deployed. If there are any issues that could prevent the RPM bundle or file bundle from being deployed, you can look at the log file to troubleshoot the bundle-creation process. The log file is located in /var/opt/novell/logs/zenworks.

      A successful dry run ensures that the bundle can be successfully deployed or installed on assigned devices (packages are available, dependencies are met, etc.).

  15. Specify the desired Scheduling options:

    • Deploy and install at a scheduled time: Use this option to schedule the deployment and installation of the bundles contained in this bundle group. Click the Schedule icon to choose the schedule type.

      The following schedules are available. Click the link in the left column in the table below for more information about each schedule type and its options.

      Schedule Type

      Description

      Date Specific

      Select one or more dates on which to install the bundle on assigned devices and set other restrictions that might apply.

      Relative to Refresh

      Schedule when the bundle is installed, either immediately after the device refreshes or a specified amount of time after the device refreshes. You can also specify whether the bundle's installation is repeated and specify a time period when you do not want the bundle installed to help minimize network traffic during that time.

    • Deploy and install at separate scheduled times: Use this option to specify an optional deployment schedule separate from the installation schedule. If you select this option, you can set up a deployment schedule and an installation schedule. If you do not select this option, the packages will be deployed and installed on assigned devices according to the schedule. Click the Schedule icon to choose the schedule type.

      The following schedules are available. Click the link in the left column in the table below for more information about each schedule type and its options.

      Schedule Type

      Description

      Date Specific

      Select one or more dates on which to install the bundle on assigned devices and set other restrictions that might apply.

      Relative to Refresh

      Schedule when the bundle is installed, either immediately after the device refreshes or a specified amount of time after the device refreshes. You can also specify whether the bundle's installation is repeated and specify a time period when you do not want the bundle installed to help minimize network traffic during that time.

      The Deploy and install at separate scheduled times option is not set by default. In most situations, there is no need to deploy and install packages inside bundles at different times. You can, depending on your needs, schedule deployment and installation at different times to conserve network bandwidth or to perform the actions at more convenient times for users.

      The deployment schedule determines when the packages and files inside the bundle are downloaded from the server to the assigned devices. The packages and files are not yet installed and available for use. The installation schedule determines when the packages and files are installed on assigned devices so the packages will be available for use.

    • Deploy and install immediately (when this wizard completes): Select this option to specify that the packages inside the bundle deploy and install immediately when the Wizard completes, providing that the assigned devices are online. The packages inside the bundle deploy to and install on devices that are not online when they refresh.

  16. Click Next to display the Bundle Groups page.

    Bundle Groups page
  17. (Optional) Click Add to open the Select Groups dialog box, then click the underlined links in the Name column to select the desired bundle groups and display their names in the Selected list box.

    Using bundle groups eases administration efforts by letting you group several bundles so you can use common assignments, schedules, and so forth, rather than configuring these settings for each bundle you create.

  18. Click Next to display the Summary page.

  19. Review the information on the Summary page, making any changes to the bundle settings by using the Back button as necessary. Click Finish to create the bundle as configured per settings on the Summary page.

  20. Click OK.