Service Pack Migration

Service Pack Migration (SP Migration) allows you to upgrade SLE-based client systems from an SP level to a later one.

During migration Uyuni automatically accepts any required licenses (EULAs) before installation.

In SUSE Linux Enterprise 12 and later, SUSE supports service pack skipping. For example, you can upgrade from SUSE Linux Enterprise 12 SP2 to SP4, without installing SP3. For supported SUSE Linux Enterprise upgrade paths, see https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-upgrade-paths.html#sec-upgrade-paths-supported.

Service pack migration is for upgrading within the same major version. You can not use SP migration to migrate from SUSE Linux Enterprise 12 to SUSE Linux Enterprise 15. For more information about major upgrades, see client-configuration:client-upgrades-major.adoc.

SP migration does not have a rollback feature. When the migration procedure has begun, rolling back is not possible. Ensure you have a working system backup available, in case of an emergency.

Procedure: Performing a Migration
  1. From the Systems  Overview page, select a client.

  2. From the system details page of the client, navigate to the Software  SP Migration tab.

  3. Select the target migration path and click Select Channels.

  4. From the Service Pack Migration - Channels page select the correct base channel, including Mandatory Child Channels and any additional Optional Child Channels.

  5. OPTIONAL: Check Allow Vendor Change to allow packages that have changed vendors to be installed. If this occurs, a notification is shown with details before the migration is started.

  6. Click Schedule Migration when your channels have been configured properly.

SP Mass Migration

If you want to migrate a large number of clients to the next SP version, you can use Uyuni API calls.

Procedure: Performing a Mass SP Migration
  1. List available migration targets, and take note of the system IDs you want to migrate:

    spacecmd api -- system.listMigrationTargets -A 1000010001
  2. For each system ID, call listMigrationTarget and check that the desired target product is available.

    • If the system ID has an available target, call system.scheduleSPMigration.

    • If the desired target is not available, skip the system.

Adapt this template for your environment:

target = '[....]'
basechannel = 'channel-label'
system_ids = [1, 2, 3]

session = auth.login(user, pass)
for system in system_ids
  if system.listMigrationTargets(session, system).ident == target
    system.scheduleSPMigration(session, system, target, basechannel, [], False, <now>)
  else
    print "Cannot migrate to requested target -- skipping system"
  endif
endfor