SUSE Linux Enterprise Server 11 SP4
Automated Upgrade from SUSE Linux Enterprise Server 10 SP3 to 11 SP1 #
SUSE Linux Enterprise Server 11 SP4
Abstract#
The following procedure is a way to do a mass upgrade unattended from SUSE Linux Enterprise Server 10 SP3 to SUSE Linux Enterprise Server 11 SP1. Several preparation steps are needed to create a suitable AutoYaST profile. AutoYaST finally will execute the upgrade process.
1 Preparing and Applying the Driver Update Disk (DUD) #
The unattended_upgrade_dud package contains
the Driver Update Disk (DUD); when installed, find it at
/var/adm/unattended_migration.dud. This file
contains all changes, which are needed for the unattended upgrade
workflow. Install the unattended_upgrade_dud
package to get access to the DUD. You do not need to install it on
all the machines, which you intend to upgrade.
You can use the DUD as follows, alternatively:
1.1 Modify Contents of the Installation Source (Repository) #
Applicable on: x86, x86_64, System z
Append the DUD to the end of the installation
initrd. The installation
initrd is located at
/boot/architecture/loader/initrd
on the first DVD. Either use an ISO editor to update the ISO
image or modify the initrd in your
network installation environment. To adapt the
initrd, run (use the correct path for
your installation initrd):
cat /var/adm/unattended_migration.dud >>/path/to/your/installation/initrd
Warning: Modified initrd Runs Unattended
Upgrade Automatically
Such an updated installation
initrd will automatically run the
unattended upgrade and will not be capable of doing any other
method of upgrade or (auto)installation.
1.2 Provide an Additional Kernel Parameter #
Applicable on: x86, x86_64, POWER, Itanium System z
This way, there is no need to modify the installation source at all. You just must add an additional kernel parameter, which will point linuxrc to the DUD. At the boot prompt or in PXE boot menu add (replace the URI with correct one in your network infrastructure):
dud=ftp://host/directory/dud.dud
On System z, you must add the parameters to the PARM file; proceed the same way as you do when performing an AutoYaST-driven installation.
Note
You may be asked to confirm the DUD, if it is comming from an
unsafe installation source (repository). You can add the
insecure=1 boot parameter to the
installation kernel to disable all cryptographical checking
normally done by Linuxrc. For more information about Linuxrc,
see http://en.opensuse.org/SDB:Linuxrc.
2 GRUB Menu Section for Booting into the Upgrade #
An alternate way to boot the system is to create an additional section
in the GRUB menu (similar for other architectures), which starts the
installation. The following example assumes that there is a separate
/boot partition, which is referred in GRUB as
(hd0,0):
title Upgrade
root (hd0,0)
kernel /upgrade/vmlinuz install=inst_source_url vga=0x314
initrd /upgrade/initrdThe above example assumes that the installation kernel and the
updated initrd (see Section 1.1, “
Modify Contents of the Installation Source (Repository)”) are located in the
/boot/upgrade directory. If the
initrd is not updated, just append the
dud= parameter. On System z, you must add the
parameters to the PARM file—proceed the same way as you do
when performing an AutoYaST-driven installation.
3 Preparing the AutoYaST Profile #
The AutoYaST profile for the automated upgrade uses the same file format as the AutoYaST installation. For more information about AutoYaST, see the Deployment Guide and the AutoYaST Guide.
However, for obvious reasons, there are some parts of the system (e.g., partitioning) that do not make sense to be configured during the upgrade. On the other hand, it is useful to set upgrade-specific options by means of the AutoYaST profile.
3.1 Upgrade #
The upgrade options define the behavior of the dependency solver during upgrade:
<upgrade>
<only_installed_packages
config:type="boolean">false</only_installed_packages>
<stop_on_solver_conflict
config:type="boolean">true</stop_on_solver_conflict>
</upgrade>only_installed_packagesSet to
truefor package-based upgrades (recommended for upgrading to the next service pack of the same product) orfalsefor pattern-based upgrades (recommended for an upgrade between versions of a product, e.g. from SLES10 to SLES11).stop_on_solver_conflictDefines whether to show the proposal in case of failure to resolve package dependencies interactively (recommended to be set to
true, but this could result in an interactive process, during which the user must to resolve the conflicts manually.
3.2 Software Selection #
The software selection options define, which components to select or deselect in addition to the results of the resolver:
<software>
<packages config:type="list">
<package>autoyast2-installation</package>
<package>apparmor-profile-editor</package>
</packages>
<patterns config:type="list">
<pattern>base</pattern>
</patterns>
<remove-packages config:type="list"/>
<remove-patterns config:type="list"/>
</software>It is especially important to set packages or patterns for
being selected or deselected in order to resolve package conflicts
and thus to avoid the need for interactive intervention. Once the
upgrade is done, the newly created
autoupg_updated.xml file contains these packages
and patterns plus those that were selected or deselected for any
other reason.
3.3 Backup Before Upgrade #
The backup before upgrade options match these features in the upgrade proposal.
<backup> <sysconfig config:type="boolean">true</sysconfig> <modified config:type="boolean">true</modified> <remove_old config:type="boolean">false</remove_old> </backup>
sysconfigdefines whether to backup sysconfig before upgrading.
modifieddefines whether to backup the modified configuration files before upgrading.
remove_olddefines whether to remove old backups from previous upgrades.
3.4 Networking #
To assure that the network configuration is kept during upgrade, the following needs to be added to the AutoYaST profile:
<networking>
<keep_install_network
config:type="boolean">true</keep_install_network>
<start_immediately
config:type="boolean">true</start_immediately>
</networking>If your system contains an add-on, which needs to be upgraded, always include the add-on information as in the example. After the upgrade the system needs to be registered in order to activate the update repositories. See the example of the registration part in attached autoupg.xml.
4 Running the Automated Upgrade #
To start the automated upgrade, you must boot the installation media with the DUD applied and pass the AutoYaST profile to it. There are two ways to pass the profile to the system:
Pass the profile to the kernel command line the same way as for the AutoYaST installation (use the
autoyast=urlparameter. For System z, this is the only possibility.Before you start the upgrade, copy the profile to
/root/autoupg.xml. Then there is no need for any additional kernel parameter.
The latter approach allows you to have a single installation kernel command line for even different machines—just copy the appropriate profile into its file system.
As long as you have only one SUSE Linux Enterprise Server system installed on your machine, there are no package conflicts and you did not set the profile to stop on the upgrade proposal, the complete process will be non-interactive. In case you enter the upgrade proposal, you can modify its settings for the upgrade.
After the upgrade finishes, YaST writes the
/root/autoupg-updated.xml file, which contains
the profile with applied software selection changes done in the
proposal. This is especially useful in case of mass upgrades of
machines with the same package selection. This way, conflict
resolutions from one machine can easily be applied on other machines,
which consequently will get these conflicts resolved automatically
and the upgrade itself will be non-interactive.
If there are more SUSE Linux Enterprise Server systems installed on the machine, you will always be asked, which one to upgrade—there is no way to select it in advance.
5 Second Stage of the Upgrade #
The automated upgrade by default does not perform configuration changes during the second stage of the upgrade. The only exception is network configuration, which needs to be set to be preserved in the AutoYaST upgrade profile.
If configuration adjustment of some system areas is needed after the upgrade (e.g., configuring a new service), add the relevant sections to the AutoYaST profile for the upgrade and the configuration of the selected system areas will be saved during the upgrade.
Warning: AutoYaST Supplied Configuration Replaces Exisiting Configuration
Be warned that existing configuration of that system area will be replaced and thus destroyed by the AutoYaST configuration.
Normally, the only configuration adjustment, which should be present in the AutoYaST profile, is the registration of the system with Subscription Management Tool (SMT) or Novell Customer Center (NCC). If this is missing, the system will not get the update repository and updates will not be possible—unless configured later again.
6 Limitations and Hints #
6.1 NetworkManager and Registration #
In case of using NetworkManager for managing network devices and network connections, network connection is not available during the second stage of the upgrade. This prevents the system from performing the registration.
6.2 Cleaning Up Upgrade Setting #
If you do any changes in your system in order to trigger the upgrade process (e.g., adding a new section to the boot loader menu), you probably want to remove it after the upgrade is done.
You can do it automatically with a post-installation script. Find
an example in the AutoYaST documentation at http://www.suse.com/doc/sles11/book_autoyast/data/createprofile_scripts.html.
A sample script for cleaning up GRUB's menu.lst is
included in the sample autoupg.xml file. Make
sure that the script matches your particular setup and that it does
not remove more than you actually want!
6.3 For More Information #
Update Media How-To: http://ftp.suse.com/pub/people/hvogel/Update-Media-HOWTO/index.html
Linuxrc Documentation: http://en.opensuse.org/SDB:Linuxrc