Installing SUSE Cloud using SUSE Manager

This post refers to SUSE Cloud Deployment Guide Version 2, 3, 4 and 5.
Currently, we have a cloud 5 test environment with three nodes.
Setting up the cloud using SUSE Manager to provide update repositories can lead to frustrating errors, a little mistake in the docs is responsible for the premature abortion of the install script.

Background

When you set up the Admin Node and you reach the point where you have to run the script install-suse-cloud, you have to consider how you are providing the update repositories, SMT-Server on the Admin Node, remote SMT-Server or SUSE Manager (SUMA).
Our first attempts to install the cloud were based on a mixture of remote SMT-Server and SUSE Manager. After the installation we registered the cloud nodes in SUMA so that every node had direct access to updates. The registration in SUMA deactivated the SMT-repositories automatically.

Now since we are using SUMA already, we decided to replace SMT completely with SUMA in our cloud environment.

Possible Problem

After you configure your admin node and set up all repositories with yast crowbar or directly in the provisioner.json, you have to run

screen install-suse-cloud

But in case you are using SUMA, the command according to the documentation should be

screen env REPOS_SKIP_CHECKS+=" SLES11-SP3-Pool SLES12-Pool" install-suse-cloud

That’s what I did, but I still got an error and the installation was cancelled. The error message was

Error: SLES11-SP3-Pool (11.3) does not contain the right repository 
(/srv/tftpboot/suse-11.3/repos/SLES11-SP3-Pool/repodata/repomd.xml is missing repo tag
'updates://zypp-patches.suse.de/autobuild/SLE_SERVER/11-SP3/pool/x86_64')

Obviously, the SLES11 channel was checked anyway. So somehow the exclusion did not work.

Solution

First, I commented out the respective lines in the file /opt/dell/bin/install-chef-suse.sh:

#check_repo_tag repo  11.3 SLES11-SP3-Pool 'updates://zypp-patches.suse.de/autobuild/SLE_SERVER/11-SP3/pool/x86_64'
#check_repo_tag repo    12.0 SLES12-Pool  'obsproduct://build.suse.de/SUSE:SLE-12:GA/SLES/12/POOL/x86_64'

This worked just fine, the repos were skipped and the installation succeeded. But of course, this is just a workaround, not very pretty. Instead, I tried to figure out why the channels weren’t excluded.

Actually, it’s quite simple: the command env does not add the values “SLES11-SP3-Pool” and “SLES12-Pool” to the variable “REPOS_SKIP_CHECKS” but it sets the values of the variable “REPOS_SKIP_CHECKS+”. It’s the plus sign that makes the difference because env doesn’t know the “+=” operator.

So if you are using SUSE Manager and want to run the install script you should run

screen env REPOS_SKIP_CHECKS=" SLES11-SP3-Pool SLES12-Pool" install-suse-cloud

This way the start values for “REPOS_SKIP_CHECKS” are set with env and the install script uses “+=” to add other repos to skip.

You see the result in /var/log/crowbar/install.log:

Ignoring failed repo check for SLES11-SP3-Pool (11.3) due to $REPOS_SKIP_CHECKS 
(/srv/tftpboot/suse-11.3/repos/SLES11-SP3-Pool/repodata/repomd.xml is missing repo tag 
'updates://zypp-patches.suse.de/autobuild/SLE_SERVER/11-SP3/pool/x86_64')

The repository has been skipped and the installation can continue.

This entry was posted in SUSE Cloud and tagged , , . Bookmark the permalink.

Leave a Reply