SLES 15 SP4 Vagrantbox erstellen

Vagrant erfreut sich vor allem für Entwicklungszwecke großer Beliebtheit. Bedauerlicherweise hat sich SUSE dazu entschieden, für SLES 15 SP4 keine solche Boxen mehr anzubieten - für die vorherigen Releases SP2 und SP3 gab es noch entsprechende Downloads. Eine Nachfrage beim Support hat diese Vermutung bestätigt - leider fehlt bisher ein entsprechender Hinweis in den Release Notes.

Wenn man eine solche Vagrantbox jedoch braucht, kann man sich an den Vorlagen des generic-Projekts orientieren, um eigenhändig Vagrantboxes mit Packer zu bauen. Eine andere, weniger zeitintensive und komplexe Option ist es, die bestehende SP3-Vagrantbox zu aktualisieren.

Hinweis

Für SLE 15 SP4 und SP5 gibt es inzwischen auch inoffizielle Vagrantboxes.

Hierzu wird die letzte SP3-Vagrantbox heruntergeladen und importiert:

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

$provider ist durch den entsprechenden Provider zu ersetzen, beispielsweise libvirt. Zum Zeitpunkt der Artikel-Veröffentlichung war QU4 das aktuelle Abbild.

Anschließend wird das folgende Vagrantfile erstellt:

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

Wie gewohnt wird die VM mit vagrant up erstellt, mit vagrant ssh wird eine SSH-Verbindung hergestellt.

Anschließend wird die VM registriert und aktualisiert:

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

Nach einem Neustart wird das Service Pack aktualisiert:

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

Abschließend werden noch einige in der ursprünglichen Vagrantbox fehlenden wichtigen Tools ergänzt:

1# zypper in rsync nfs-client bzip2

Beim Erstellen einer VirtualBox Vagrantbox müssen noch die Gast-Erweiterungen aktualisiert werden. Dazu müssen die make, perl, gcc und kernel-default-devel Pakete installiert und die entsprechende ISO eingelegt werden. Hierzu muss noch ein virtuelles CD-/DVD-Laufwerk konfiguriert werden.

Durch die SP-Migration können verwaiste Pakete (z. B. alte Python 2.7-Installation) entstanden sein, diese lassen sich wie folgt erkennen und entfernen:

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

Vor der Erstellung der Vagrantbox müssen noch der Zypper-Cache entfernt und die Maschine deregistriert werden:

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

Nun kann die Vagrantbox erstellt werden:

1$ vagrant package --output SLES15-SP4-Vagrant.libvirt.box

Abschließend findet sich eine neue .box-Datei im aktuellen Ordner, die sich wiederum importieren lässt:

1$ vagrant box add sles15-sp4 SLES15-SP4-Vagrant.libvirt.box

Schade, dass SUSE hier unnötigen Mehraufwand beim User erzeugt.

Übersetzungen: