Building Appliances with SUSE Studio
Building Appliances with SUSE StudioOnce logged into SUSE Studio, you begin building a new appliance by selecting a base distribution and template. As base distribution options, SUSE Studio offers up the free and community-supported openSUSE 11.1, alongside two versions of the Novell-supported SUSE Linux Enterprise. I could choose from a variety of system templates for each distribution option. On the same page of the interface, I selected either the 32-bit x86 or 64-bit x86-64 processor architecture for my appliance. One of the first appliances I set out to build was a bare-bones graphical desktop with a handful of productivity applications-e-mail, note taking and task management-that I could run from a USB drive via VMware Player or VirtualBox to keep my key productivity applications available from multiple machines. I chose the Minimal X template of openSUSE 11.1 and clicked ahead to start adding software to my test appliance. SUSE Studio presented me with the repositories and packages that came with my base template selection. From there, I could begin adding or removing software packages and software package sources from my appliance project. It wasn't long before I found that some of the applications I wished to add weren't available in the stock openSUSE repositories, but it was easy to search a list of Build Service repositories, by package name, to find and add the ones that contained most of the applications I needed. The repository listings that my searches pulled up included popularity ratings, as well as links to project pages at the Build Service where I could see the names of the project developers. However, I would like to see more information provided about where the packages come from, to help me decide whether to rely on them. In addition to connecting existing repositories to my project, I could quickly populate a new repository of my own by uploading or linking to RPMs or sets of RPMs. This came in handy because, for some reason, I couldn't get SUSE Studio to register my addition of the Mozilla Beta channel from the Build Service. I worked around this kink by uploading the package I needed through the RPM upload tool. For applications without a ready RPM package, I could use the Build Service to create a package. SUSE Studio could benefit from tighter integration with the Build Service-it would be helpful, for instance, to be able to create new packages from within the Studio. Novell's SUSE Linux distributions feature very good dependency-resolution logic and tools-both of which surface in SUSE Studio-that make clear the relationships between software components. I gave these dependency-resolving tools a run-through when I sought to "ban" the IceWM window manager package from my appliance. When I banned IceWM from my project, an error message appeared in the interface's left-hand sidebar. Clicking the More link beneath the error message called forth a handful of operations that would resolve the conflict. I could, for example, choose to add the package back to my appliance, or I could remove the package that required IceWM-in this case, the tool used to configure the X server upon first booting the appliance, Sax2. When I tried to resolve my IceWM conflict by removing the Sax2 package, SUSE Studio warned me that the removal would prevent my appliance from correctly configuring its X server. In addition to addressing package dependency issues by adding or subtracting packages, SUSE Studio offered, in certain cases, to resolve conflicts by adding new repositories. Later in the appliance creation process-after I'd set my image type to VMware-SUSE Studio spawned another left-hand sidebar message, this time suggesting that I add the VMware tools package to my appliance. Once I was satisfied with my software selections, I moved on to set basic configuration settings, such as those for time zone, networking and users. I could also make some adjustments to the appearance of my appliance, tack multiple EULAs onto my appliance and single out applications to launch upon appliance log-in. As with any tool for creating virtual machine images, SUSE Studio provided an option for setting RAM and storage sizes for images destined for deployment on Xen or VMware hosts. Moving forward, I would like to see the service add more configuration options, including a tool for setting systems up with encrypted partitions or other advanced storage settings. If the software selection and basic configuration options aren't enough to arrive at the sort of appliance you wish-and, for complicated appliances, they seldom will be-SUSE Studio provides facilities for adding post-build and boot-time scripts to its appliances, and for populating appliances with archives or single files. SUSE Studio will produce appliance images in raw disk image, Live CD/DVD iso, VMware and Xen formats. According to the SUSE Studio team, support for creating images in Amazon's EC2 ami format, and for injecting these images into the Amazon cloud, is planned.
The first step to building a software appliance with SUSE Studio involves registering for and logging into the service. (SUSE Studio supports OpenID authentication.) If you have an existing account at Novell's Website, those credentials will do nicely. For my tests, I stuck with the same ID I use to log into the openSUSE Build Service.