Release Upgrades are the process by which a given Ubuntu installation is upgraded to the next available release. For example, we can upgrade Ubuntu 8.04 LTS ("hardy") to Ubuntu 10.04 LTS ("lucid") by doing a release upgrade.
This process has been around for quite some time, but it's just recently that Landscape started supporting it. So let's take a look at how it works!
WARNING: PLEASE BACKUP YOUR DATA AND RUN A TEST UPGRADE FIRST BEFORE TRYING TO UPGRADE PRODUCTION SYSTEMS! THIS UPGRADE IS NON-INTERACTIVE AND SOME PACKAGES MAY NOT COPE WELL WITH THAT!
How it works
Landscape uses the same tool that Ubuntu uses to upgrade your system. The only, and really important difference is that the upgrade driven by Landscape is non-interactive. This means that any questions that you would normally get if conducting the upgrade yourself won't be answered when Landscape does the upgrade.
Some packages cope better with this than others, so your mileage may vary.
The same applies for questions regarding changed configuration files. In this case, Landscape will take the default answer of leaving the current file untouched, i.e., the new maintainer version of the file won't be installed.
This is not really new for Landscape: any package activity is already carried out in a non-interactive way and will have the behavior described above.
In order to be able to use this feature, you need to have landscape-client 1.5.0 or later installed on the machine. If you don't, the release upgrade activity will fail with an error message asking you to upgrade the client.
Upgrading a release
To start a Release Upgrade, we first need to select the machines we want to upgrade. So just go to the computers page, or click on a tag, or search for computers, it doesn't matter. Just get a selection, and then click on the "Packages" page.
If one or more of the selected computers can be upgraded to a new release, the "Advanced" section at the bottom of the page will say so:
In this example, we have three machines that can be upgraded to a newer Ubuntu release. Let's check them out. The following table gives more details about what upgrades we can do with these three machines:
Out of the three computers we have selected, two are 8.04 LTS ("hardy") machines that can be upgraded to 10.04 ("lucid"), and one is a 9.04 ("jaunty") machine which can be upgraded to 9.10 ("karmic").
This table doesn't say explicitly which machine will be upgraded! Be sure to check the lower left computer selection icon for a list of machines!
If you are satisfied and want to proceed with the upgrade, just select the releases you want to have upgraded and click on "Upgrade". This will create the necessary activities among the selected computers:
Now, this can take some time. Depending on the releases, several hundreds of megabytes worth of packages will have to be downloaded and installed. While this is happening, please refrain from creating any other activity affecting any of these machines.
Checking the results
At some point, the activity will either fail or succeed. In any case, Landscape provides extensive log output about how the upgrade went:
The result text is usually very extensive, the more so if you have more packages installed on the system. It collates the log files /var/log/dist-upgrade/main.log and /var/log/dist-upgrade/apt-term.log. You should inspect it looking for errors and packages that didn't like being upgraded in a non-interactive mode. These will need to be reconfigured after the upgrade.
After a Release Upgrade, the machines need to be rebooted.
Before doing that, please check the activity logs and look for possible errors, even if the upgrade is shown as having finished successfully. Pay particular attention to kernel upgrades and initrd image generations, because if these failed somehow, the machine may not boot properly.
We have tested several scenarios and combinations of Release Upgrades, both servers and desktops. As expected we encountered some packages which didn't like not being run in an interactive mode, but that didn't prevent the machine from booting into the new release. And these packages can be reconfigured afterwards without problems.