Working with Suse Studio : An exercise in online virtual appliance creation.

Making custom Linux distributions can be an arduous task. Luckily, there are
companies out there that are looking to make the process more friendly.
Previously,
I reviewed the Reconstructor Web UI, a
web-based Debian/Ubuntu customization utility, and today, I'd like to
present you with a SUSE-based alternative called SUSE Studio. Although SUSE
Studio does have some offline components (such as SUSE Studio
Onsite and
the rest of the SUSE Appliance
Toolkit),
this review will focus on the online components which are freely available
at susestudio.com. For those that are following along at home, I'll assume
that you already have an account with SUSE Studio (if not, you can request a
free invitation via this page).

A quick bit of history: Suse Studio was released in
July of 2009,
and has a variety of web-based customized Linux build options. It uses
Kiwi to build and
customize virtual appliances. SUSE Studio also has its own
mascot, named Dister.

Amongst the potential uses of SUSE Studio:

You could make your own portable portfolio live-DVD, complete with
running code samples or other work.

Purpose-built OS installs such as kiosks, educational disks, or
development platforms built through a web browser instead of on an actual
machine.

Virtual machines built to compile and test software before rolling out
on a larger scale.

Honestly, the possibilities are limited solely by your imagination and the
time you agree to put into it.

Building a Virtual Appliance

I will guide you through the build process of a sample virtual machine, to
show you some of the features of the service. I'll include some screenshots
and a video to help you follow along.

Signing in:

Once you have a SUSE Studio account, you can link it to a variety of
different IDs that you may already have, such as Gmail or
OpenID. For example, if I'm reading my Gmail in one tab
and click the Google sign-in icon, it automatically signs me in using my
Google identity.

Home page/Starting a new appliance:

Once you sign in, you will have access to your home page, where all of your
previous virtual appliances are accessible. You are allocated 15 GB of free
space to store your virtual appliances, but if your appliance is more than
seven days old, it may be deleted to make room on the servers. The old
projects remain, and they can be rebuilt at any time.
The upper right hand corner has the "Create New Appliance" icon. Click it to
start a new appliance.

Choosing a template:

When starting an appliance, you can choose from templates such as OpenSUSE
11.2, and SUSE Linux Enterprise 10/11. The environments can vary from
incredibly small
JeOS (pronounced
"Juice") appliances to full featured desktops. Your initial
choices of desktop environments are GNOME, KDE3/4, and IceWM. For this
appliance, I chose an OpenSUSE 11.2 GNOME template. If these choices aren't
appealing to you, click the "Additional templates..." link near the bottom
of the screen.

Additional templates:

Among the additional templates are a pre-configured
Ingres
or LAMP server, and
up-to-date versions of KDE4 and GNOME. It's good to know that they're there,
but I didn't think they were necessary for this build.

Name your creation!

Here we see Dister the mascot telling us to name our appliance. I'm going to
call this appliance LinuxJournal-nix. You can change this name at a later
time, so don't spend all of your time on this screen thinking of an
unforgettable name.

Choose your software:

The software tab is where a great deal of the configuration of your
appliance will occur. This is where you can select additional repositories,
select packages, search for specific packages, or add patterns (groups of
packages). You also have the ability to upload your own packages and
repositories. Let's start by looking at the repository options.

Repo browsing:

OpenSUSE has an enormous amount of additional repositories available. The
SUSE Enterprise Linux based appliances do not have the same repository
options here.

Repo search:

With so many repositories to choose from, I'm very happy that they included
a search option here. I've chosen to search for
Dropbox,
as I very much enjoy using their service. One annoyance from this search
feature: It does not list version numbers, which was frustrating when I was
looking for a version of eclipse-jdt of 3.5.0 or higher, since the default
eclipse-jdt is 3.4-256.1.

Software search:

SUSE Studio offers you a couple different ways to wade through all of the
software packages from the repositories that you've selected. You can
whittle down your results by repository, software pattern, group, or by
using the search field that is provided. Keep in mind that if your selected
repositories don't find a match, that doesn't mean that there won't be a
match in the other repositories that you haven't selected. If that happens,
refer to the Repo search shown in the previous screenshot.

Software info:

Clicking on a software package or group will give you more info about it. A
nice feature is that it will also tell you the suggested and recommended
packages that go along with the selection, and feature a small "Add All"
button if you wish to add the related optional packages as well.
I picked some games and apps, and LinuxJournal-nix is starting to take its
shape!

Configuration - General:

Here, you can easily configure your network, firewall, time zone, locale,
and users/groups. I changed myself to the Central Time Zone, since I'm a
Wisconsinite. User configuration can be done here, including assigning a
shell of /bin/false, if need be.

Personalize your appliance:

Personalizing is where you can give your appliance a little bit of
distinctive flair. This artwork appears during the boot and login process.
You can upload your own content rather easily here. The default
configuration is shown above, and the screenshot below shows the same
virtual appliance with a Linux Journal logo and a background that I created
(and posted on kde-look.org
a while ago).

If you are doing a company or organization-specific build, this is an easy
way to insert company-specific branding in builds. Keep in mind that this
customization does not affect the user wallpaper.

Appliance at a glance:

Now seems as good of a time as any to mention that the left portion of a
screen stores some basic information about the system. It indicates the type
of build, size, and recent changes that may have occurred. If there are any
conflicts or errors in your virtual appliance, they will appear here. Now,
on with the configuration...

Desktop configuration:

I've skipped over the "Startup" and "Server" tabs, as I don't need to change
the default runlevel or make/modify an EULA (done in the Startup tab) or
configure MySQL or PostgreSQL (found in the Server tab). Since I plan to
make a live DVD, I'm going to configure the appliance to autologin as the
default user (tux). I could also configure programs to autostart in this
tab.

Virtual machine parameters:

The appliance tab allows you to configure your appliance to a particular
use, such as Xen or VMWare/VirtualBox. As I am intending to make a live DVD,
the only option that I've checked here is to add the installer to the live
disk, just in case I feel like installing it.

Custom scripts:

If I were so inclined, I could run custom scripts on this appliance at the
end of the appliance build or at each boot. I do not intend to use this
feature in my appliance, but it's good to know that it's there.

Overlay files:

After configuring the appliance, the "Overlay Files" tab allows you to add
files anywhere in the system, with any permissions or ownership that you
would like. It also accepts archive files , and can extract them, preserving
permissions. If you plan on adding a significant number of files, I'd
suggest going the archive route. I've simply added an additional wallpaper,
so it wasn't as big of a deal for me.

Build Time!

We've finally reached the build stage. As you can see, the available build
formats are quite varied. Currently, you can create live CDs and DVDs, hard
drive images, and virtual machine images. Current virtual machine build
formats are VMWare/VirtualBox (.VMX) and Xen. SUSE Studio is currently
working on OVF (yay!) and Hyper-V (meh..) formats, as well.
Decide your default format, and check any other formats that you may build,
as well.

Build status:

Once you've clicked the "Build" button, SUSE Studio will show you a progress
indicator, indicating how much time the build is taking, and the process of
the build. If you want, you can close the build window, and the build
process will continue without your intervention. If/When the appliance
finishes the creation process, it will indicate its status in your home
window. This allows you to run concurrent builds, if you are so inclined. If
there are any errors, it will indicate a description of the error that has
occurred, and it may also suggest a solution. The LinuxJournal-nix build
process ran without any hiccups.

Accessing your builds:

Here is an example view of some completed builds. If you click the "View
Checksums" link near the bottom, it will show you all of the MD5sums, so
that you can verify your download is not corrupted.

View files:

If you click on the "View files" link under Builds, it will open up a new
tab and show you an interactive view of all of the files in your appliance.
This view is also searchable. Note that I searched for Dropbox to see if it
was installed.
Test Drive:

The next feature of SUSE Studio is called Testdrive. It's a flash-based
browser virtualization utility. The best way to show it to you is in video
form, see it here.

Note: If you use the "Modified Files" feature and add files, they will be
added in the "Overlay Files" section, if you later wanted to view, change,
or remove them.

Well, that's it! We've just made LinuxJournal-nix 0.0.1!

Complaints/Annoyances:

I have had occassional issues with Testdrive and OS builds, but I do have
to admit that the error page is cute. When I have contacted support, they
have been fast, friendly, and helpful.

Non-optional brand placement:

When you add images to the boot screen, SUSE Studio adds a logo to the
bottom right hand corner of the screen. It isn't optional. It would be
nicer if I got a little more choice in that.

Being able to customize the boot splash and login screen whet my appetite
for more customization. When you upload an image for the boot screen, it's
automatically the login screen, as well. More flexibility would be nice.

Oddly enough, I had issues changing the desktop background in test drive
mode, and didn't see an easily accessible option on the site.

Also I've had issues with non-traditional appliances. Autologin didn't work
when I tried to configure a minimal X IceWM appliance, though it works fine
in GNOME.

There does not appear to be a method to collaborate on appliances with
multiple different people.

Despite the builds having a version history, there is no changelog function
for explaining the differences in the different versions. Technically, you
could create a text file and insert it into the appliance itself, but it
would not be as easily accessible as a clickable text field on the site. I
want creating documentation to be straightforward, not obfuscated. ((EDIT: Since the writing of this article, they have implemented a "Take Notes" feature that allows you to keep a version history. Read more about it on the Suse Studio Blog))

I used to have issues accessing the site in Google Chrome browser. I no
longer have those issues, so I think they've fixed whatever issues were
present.

Honestly, I'd like it if the remastering utilities could work better across
distributions. I don't want to be stuck with SUSE, or Fedora, or Ubuntu when
customizing. I want them all. At the least, I'd like all of the distros with
the same package managment styles together in one tool (Example: CentOS,
OpenSUSE, and Fedora; Debian, Ubuntu, and Mint). Time will tell if that will
ever be possible.

I've been using SUSE Studio since its alpha testing phase in May of 2009,
and despite the occasional frustration, I've been happy with the rate of
development for this project. They are also currently
hiring,
so we can assume that this project will be continuing its progress in the
forseeable future.

Conclustion

Regardless of the customization service that you prefer, be aware of the
advantages of each service before you build. I'm an Ubuntu fan, but I
really enjoy using SUSE Studio. These customization services are getting
easier and easier to use as time goes on, so pay attention as developments
are made.
Also, feel free to take advantage of the
FAQs,
screencasts/guided tours,
and HOWTOs that are available.
It looks like the SUSE Studio team has done a good job keeping up with
documentation, and they should be applauded for it.
Online build services will encourage more customization, and the community
will benefit from empowering their users to make systems that fit their
needs, whether they are virtualized, installed, run as live CDs/DVDs, or
pushed out to the cloud.

Comment viewing options

The only problem I have ever had with studio is my appliances not having the SWAP space allocated. In fact not a single one I have built has had it working right. Not that it isn't easy to fix once you boot the appliance, but it is annoying.

I've tried build minimal type graphical builds using SUSEstudio a couple of times with frustrating results. Most of the time I guess I'm missing a package or something. Sometimes I'll get a graphical login, sometimes I won't. Sometimes it will let me login, other builds won't. There isn't much guidance in terms of WHAT you really need when you select a package. A couple of times some necessary packages were left out even when I picked one of the big packages to base my build on. Very frustrating.

I agree with you. Sometimes the builds don't end up the way you want them, and you have to be very careful with your packages. One redeeming factor is that you can test drive the appliance before you download and burn it, but it still isn't fun to run into issues with appliances that you build.

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.