Create SLES 15 SP4 Vagrantbox

Vagrant is very popular, especially for development purposes. Unfortunately, SUSE has decided to no longer offer such boxes for SLES 15 SP4 - for the previous releases SP2 and SP3 there were still corresponding downloads. An inquiry with the support has confirmed this assumption - unfortunately a corresponding reference is missing in the Release Notes.

If you need such a Vagrantbox, you can use the templates of the generic project to build your own Vagrantboxes with Packer. Another less time-consuming and complex option is to update the existing SP3 Vagrantbox.

This is done by downloading the last SP3 vagrantbox and importing it:

1$ vagrant box add sles15-sp3 SLES15-SP3-Vagrant.x86_64-15.3-$provider-QU4.vagrant.$

$provider should be replaced with the appropriate provider, for example libvirt. At the time of article publication, QU4 was the current image.

Then the following vagrantfile is created:

1Vagrant.configure("2") do |config|
2  config.ssh.insert_key = false
4  config.vm.define :test_vm do |test_vm|
5 = "sles15-sp3"
6  end

As usual the VM is created with vagrant up, with vagrant ssh a SSH connection is established.

Then the VM is registered and updated:

1# SUSEConnect -e <email> -r <registration_code>
2# zypper up
3# reboot

After a reboot, the service pack will be updated:

1# zypper in zypper-migration-plugin
2# echo 'installRecommends=false' >> /etc/zypp/zypp.conf
3# zypper migration
4# reboot

Finally, some important tools missing in the original Vagrantbox are added:

1# zypper in rsync nfs-client bzip2

When creating a VirtualBox Vagrantbox, the guest extensions still need to be updated. To do this, the make, perl, gcc and kernel-default-devel packages must be installed and the appropriate ISO inserted. A virtual CD/DVD drive must also be configured for this purpose.

The SP migration may have created orphaned packages (e.g. old Python 2.7 installation), these can be detected and removed as follows:

1# zypper pa --orphaned
2# zypper remove -u <pkg>

Before creating the Vagrantbox, the Zypper cache must be removed and the machine deregistered:

1# zypper clean ; rm -Rf /var/cache/zypp/*
2# SUSEConnect -d --cleanup ; rm -f /etc/SUSEConnect
3# rm -f ~/.bash_history ; exit ; sudo rm -f ~/.bash_history ; exit

Now the vagrantbox can be created:

1$ vagrant package --output

Finally, a new .box file can be found in the current folder, which again can be imported:

1$ vagrant box add sles15-sp4

It's a pity that SUSE creates unnecessary additional work for the user here.