A couple of days ago, I recieved an invitation to join the SUSE Studio alpha. At VMworld, I attended the break-out session “The Future of Linux is Software Appliances” by Nat Friedman, Chief Technology and Strategy Officer Linux at Novell. He talked about the inefficiences of a OS, seen from the ISV’s point of view.

Today the Linux world is dominated by one-size-fits-all Linux distributions that include thousands of packages and that can be two or three gigabytes fully installed. In this presentation, Nat will introduce the benefits of streamlined, single-purpose software appliances based on Linux — in the form of virtual machine images, bootable and installable media, or live USB keys.

Nat will also show some exciting new technology that’s being developed inside SUSE that will make it fun and easy for you to treat Linux distributions like lego sets to create your own custom Linux appliances.

What is SUSE Studio?

With SUSE Studio, you can make Virtual Appliances, based on a JeOS. In this case, openSUSE 11.1 is used to built the VA’s. The point of JeOS is that a ISV building and supporting a VA does not want to deal with the hassle of the underlying OS, they just want to manage and support their application. This is where SUSE Studio (or VMware Studio, for that matter) comes in. With a set of standard building blocks, a packaged Appliance is created. This enables ISV’s to eliminate difficult support tracks for the unimportant layer and concentrate on what’s important.

What can you do with SUSE Studio?

  • Create a tuned server appliance, containing your application and just enough operating system components
  • Spin a live CD or DVD with just the packages and software you need
  • Create a ready-to-run VMware virtual appliance
  • Create a live USB key and carry your Linux system with you wherever you go
  • Build a hard disk image for preloading onto hardware
  • Install from your live CD, DVD or USB key to your hard drive


This screencast is courtesy of SUSE Studio.

What is kiwi?

SUSE Studio is a front-end for kiwi:

The OpenSuSE KIWI Image System provides a complete operating system image solution for Linux supported hardware platforms as well as for virtualisation systems like Xen Qemu or VMware. The KIWI architecture was designed as a two level system. The first stage, based on a valid software package source, creates a so called physical extend according to the provided image description. The second stage creates from a required physical extend an operating system image. The result of the second stage is called a logical extend or short an image.

A normal installation process is starting from a given installation source and installs single pieces of software until the system is complete. During this process there may be manual user intervention required. However an operating system image represents an already completed installation encapsulated as a file and optionally includes the configuration for a specific task. Such an operating system starts working as soon as the image has been brought to a system storage device no matter if this is a volatile or non volatile storage. The process of creating an image takes place without user interaction.

This means all requirements of the encapsulated system has to be fulfilled before the image is created. According to this the so called image description tree stores all the information needed to create an image.

Building a Virtual Appliance

So much for the intro: let’s get started and build an actual VA!

First, open a webbrowser and go to http://www.susestudio.com. Log in using your credentials. You are then presented with the “My Appliances” page. Just select you want to “create a new appliance from a template”. We will be using the “openSUSE 11.1 JeOS” template.

Give the appliance some catchy name. Mine’s called ‘Bacula’, because I’m in the process of making a backup appliance. Head over to the ‘Software’ tab.

Because I’m building for the VMware platform, I’m adding the “open-vm-tools” package. This package is an open source implementation of the VMware Tools. Also, I’ll add the ‘bacula’ packages. Dependencies will take care of the rest of the needed software. After selecting all the packages you need, you can customize the appliance, choosing locale, time zone, network settings and users. Also, you can slightly adjust the looks of the appliance with a logo and background. In my case, I’m builing a VMware VA, so I get the options to adjust memory and virtual disk settings.

Now it’s time to build the appliance. Choose the format, and enter a version number, and hit the buildbutton.

Testing the Virtual Appliance

After building, you get the option to testdrive the newly created appliance. This will open a new browserwindow with an embedded VNC viewer. You can actually see the appliance boot and can be fully used to test the appliance. Two absolutely cool features of SUSE Studio is that while testdriving the appliance, you can have SUSE Studio monitor and automatically extract files from the appliance (configuration files, for instance). This is superb for configuring the application you’re supporting (bacula, in my case). These files go into the ‘Overlay Files’ section of the Appliance editor, allowing you to simply add some files instead of rebuilding the entire appliance and having to go through enormous trouble to upload a couple of files.

The other great feature is internet connectivity to the testdrive-appliance. The SSH, HTTP and HTTPS ports are opened up to the appliance, allowing you to check if the installed web-application works from outside the appliance. See the screenshots below.

Concluding

Creating an entire appliance will take you about 10 minutes, and that includes the time to building it. Creating the appliance is done using standard building-blocks, made available by using openSUSE 11.1. There’s no need to get to know this particular flavour of Linux, as all configuration is done by the Appliance Builder. You’ll only need to fully integrate your application with the OS. This can be scripted from the SUSE Studio interface.