How to patch or update SuSE Service Packs using Zypper



Contributor content

This topic was created by a BMC Contributor and has not been approved. More information.

BMC highly recommends using the Zypper tool (instead of yum) to upgrade SuSE service packs. BMC Server automation version 8.8 supports Zypper out-of-the-box, however for versions earlier than BMC Server Automation 8.8, you can use the instructions on this page as a workaround.

Note that SuSE only supports migrating from n to n+1 so it's not possible to jump service packs, for example to update directly from SP1 to SP3. The following procedures explain how to set up zypper repositories with TrueSight Server Automation catalogs and run the zypper dup using a Deploy Job.

Best practice for SuSE upgrades

The following procedure represents the best practice for SuSE upgrades, using the example of upgrading from SuSE 11 SP1 to SuSE 11 SP2. As noted in this KB article from SuSE, SuSE 11 SP2 systems need both the SuSE 11 SP1 and the SuSE 11 SP2 repositories. Therefore, if you attempt to run patch analysis using a SuSE 11 SP2 catalog on a SuSE 11 SP1 target, dependency issues can occur, as the required RPM packages are not part of the SuSE 11 SP2 repositories.

  1. Create the SuSE 11 SP1 repository using the offline downloader.
  2. Create the SuSE 11 SP2 repository using the offline downloader.
  3. Combine the RPM packages from the two repositories into a separate folder.
  4. Run the offline downloader script using the createrepo option, and use the location from step 3 as input.
  5. Create the offline Patch Catalog using the above payload source location.
  6. Run the Patch Analysis Job using the Patch Catalog created above.
  7. Run the Update Server Properties Job after the SuSE Upgrade,
    Server properties are not automatically reflected after an upgrade, so you must run the USP Job.

You can also refer to the following SuSE article for additional upgrade information: How to upgrade to SLES/SLED 11 SP3.

Create a BLPackage with the Upgrade Commands

  1. Create some zypper repo definition files. Use the following format and specify the appropriate URL:

    [SLES11_SP2_Updates]
    name=SLES11 SP2 Updates
    enabled=1
    autorefresh=1
    baseurl=http://blprov01-82.demodrive.com/patch2/sles11-sp2-updates-x86_64
  2. Create a BLPackage to deploy these files (SPn-Updates, SPn-Pool, SPn+1 Updates, SPn+1 Pool) into /etc/zypp/repos.d directory on the target server(s).
  3. Add an external command to the BLPackage that runs the following commands. Use the repository names that you specified in your repo files.  Replace <n> and <n+1> with the actual Service Pack numbers you are using.

    # disable the latest version repos until they are needed.
    zypper mr --disable "SLES11-SP<n+1>-Pool" "SLES11-SP<n+1>-Updates"
    zypper -n --gpg-auto-import-keys ref -s
    zypper -n update -t patch
    zypper -n update -t patch
    zypper -n in -t product SUSE_SLES-SP<n+1>-migration
    zypper -n mr --enable SLES11-SP<n+1>-Core SLES11-SP<n+1>-Updates
    zypper -n --gpg-auto-import-keys dup -l --from "SLES11-SP<n+1>-Pool" --from "SLES11-SP<n+1>-Updates"
    zypper -n update -t patch
    # only for SP3 and higher
    zypper -n mr --disable SLES11-SP<n>-Pool SLES11-SP<n>-Updates

Run the Service Pack Upgrade

Deploy the BLPackage and a Deploy Job to execute the Deployment.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*