KIWI, a quick refresher
Way back when I wrote about how to set up SUSE Linux Enterprise Server 11 as a build system for images built with KIWI. A lot has happened in the last 5 years, but SLES 11 is still going strong in its current incarnation of the SP4 release available since July 16, 2015. Thus, the information in the blog is still valid. However, we have also released SUSE Linux Enterprise 12 and with SLE 12 picking up speed and more and more people moving to SLE 12 it is time to refresh the KIWI story a bit.
For SUSE Linux Enterprise Server 12 KIWI moved from the SDK to the base distribution and thus is now fully supported. The move from SDK to the base distribution makes it easier in SLES 12 to get going with KIWI as all the kiwi packages are part of the base product repositories. Therefore, many of the steps one has to take to get a kiwi build system setup with SLES 11 are no longer required. Simply register the SLES 12 machine, or VM, with the SUSE Customer Center (SCC) via YaST or SUSEConnect, your running SUSE Manager, or SMT server. After the system has access to the SLES 12 repositories a simple
zypper se kiwi
will produce the package list. The package configuration for kiwi has not changed since the initial blog. Thus, the kiwi package provides the kiwi functionality to build images. The kiwi-doc package provides documentation and examples, the kiwi-desc-*boot packages provide the pre-configured boot image descriptions to create the initrd for a kiwi image build, and the kiwi-templates package provides basic templates that can also be used as the base for your own images.
That’s really all there is to setting up a kiwi build system on SLES 12. As you can see it is much easier than the process required in SLES 11.
In other developments I’d also like to point your attention to the dice project on GitHub with packages available in the openSUSE Build Service. The dice project aims at pushing kiwi builds into contained systems. As kiwi needs to be executed as root there is always the risk of the accidental “rm -rf /”, which is obviously not a conducive way to keeping your system up and running. Thus, dice helps to eliminate this risk by pushing the kiwi build into a contained system using Vagrant or instances in the Public Cloud to build images with kiwi.
In summary, setting up a KIWI build system with SLES 12 is a lot easier than it was with SLES 11. In addition using dice will eliminate the risk of accidental system mangling by issuing an errant command in the wrong shell.