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.
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
$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.