Creating a VMware View Live CD with SUSE Studio
This post continues my efforts to provide information on how to use the VMware View Client for Linux in fun and interesting ways. This time, we’re going to use the output from my last post on extracting the VMware View Client from the Ubuntu .DEB file to create a new live CD on a different distro – in this case OpenSUSE 12.1. Further we’ll be using SUSE Studio to create the ISO.
As always, let’s get this out of the way-
DISCLAIMER: This process is in no way supported by VMware. Use the extracted VMware View Client and subsequent OpenSUSE live CD ISO at your own risk. Neither I, nor VMware Inc. make any warranties that either of these artifacts will work for you in any way, in fact they may explicitly harm you and your family if you are not careful – but probably they won’t. Do not contact myself or VMware Inc. for support when utilizing either the extracted files or the OpenSUSE live CD ISO containing them. You have been warned.
First let me say that I have been a huge fan of SUSE Studio since the moment I got into the beta for it. I have always thought that it is not only easy to use but also very powerful – a rare combo indeed! If you have never heard of it before I like to describe it as a wizard-driven Linux appliance factory. Admittedly that description probably sucks, but that’s what I like to tell people who have never heard of it – therefore they can’t easily argue with me about it. By the time they go and see it for themselves I am usually long gone.
In order to use SUSE Studio you will need to have an account, thankfully SUSE Studio supports OpenID, so if you don’t have an existing Novell account, you can sign in with a pretty board range of other accounts you likely already have:
Once you get logged in, you are brought to your homepage. Here, you will find any previously built appliances and you’ll be given the option to create a new appliance. As that’s exactly what we are here to do, go ahead and click it.
Once you do that you will be taken to base template selection. This is the one item you only get to pick once, so make it count! There are several options you can choose from including the most recent OpenSUSE release, the most recent SLES release, and the previous SLES release. Within each section are multiple configurations targeting different deployment scenarios ranging from JeOS (Just Enough OS or “Juice”) to a text only server to a full blown desktop client with all the fixin’s.
For this tutorial we want to select the openSUSE 12.1 Minimal X base template and the 32bit architecture. We’ll also name this appliance ‘VMware View LiveCD’.
Once you are done, click ‘Create appliance’ and you will shortly be taken to the ‘Start’ tab of the SUSE Studio wizard.
The Start tab
After template selection, you’ll notice some key stats and a little thumbnail preview of the visual “look” of your appliance on the left. This will update automatically as you change the appliance configuration. On the Start tab all you can do is change the name of the appliance. The wizard suggests that we move on to the ‘Software’ tab, and I concur.
The Software tab
Now we are getting somewhere. Stuff to do! This tab is where you can add just about anything you like to your base template. Anything in the SUSE repositories is immediately available, and you can add additional repositories or even just directly upload your own custom RPMs to be applied to the base template during the appliance build. Much like any modern Linux install you can select pre-grouped patterns such as “Games” or “Java Development” which will install all required packages and dependencies or you can select individual packages and let the robot looking version of Clippy determine the requirements and deps automatically.
In order to satisfy the requirements of the VMware View Client we will need to add a few libraries. I’ve gone through the hell of finding out what’s already included in the base template, and what needs to be added so I’ll spare you the details. In short, the following packages will need to be added:
You will add these packages by entering them into the ‘Search for software’ text box and then clicking the ‘+ add’ button next to them.
Once you have added all the required packages it is time to move on to the ‘Configuration’ tab.
The Configuration tab
This is where you’ll likely spend the meat of your time when making a new appliance. There are several sub-tabs here and we will go through each one. Let’s get started…
This sub-tab is where you will add users, configure basic networking and firewall rules, set time zone, and configure language/locale info. For this build I tweaked a few things – disabled the firewall, and switched the user account name to ‘view’. I left all passwords at defaults for the sake of this build, but I don’t recommend doing that in the real world.
Here you can tweak the appearance of your appliance via a custom logo and/or background. I took a moment to whip up some custom artwork (available here and here) and uploaded them to make this appliance look a bit more VMware View-ish. You are free to peruse DeviantArt or 500px for your custom artwork though. Experiment.
This sub-tab controls the default runlevel of the appliance (leave it alone here – 5: Graphical Login) and allows you to add a EULA to the appliance if you require one, for our work here, we don’t, so leave it be.
Another sub-tab where we don’t need to touch anything, we have no database installed, and want to keep it that way.
Ah! Something we care about again! Here we will configure the appliance to auto login as the ‘view’ user we created back on the ‘General’ sub-tab and we’ll also setup the VMware View Client to be automatically started once the user is logged in.
Check the box to ‘automatically log in user’ and select ‘view’ from the dropdown box (should be the default).
Next, click ‘Add new autostart program’. In the ‘Command’ box enter:
Select ‘view’ in the ‘Start for user” dropdown, and enter “VMware View Client” in the comment (or don’t). Lastly, make sure the ‘Enabled’ check box is in fact checked – otherwise we just did all this work for nothing.
This sub-tab isn’t terribly relevant to running our appliance as a live CD except for a few options towards the bottom of the page. Primarily this is to configure the RAM and disk attributes when deploying the appliance as a virtual machine. Since we are only looking to make an ISO right now don’t mess with those settings, they won’t have any impact.
The one location we do care about here is the ‘Additional Options’ section. Here we are presented three options:
- Add live installer to CDs and DVDs
- Enable VMware CD-ROM support
- Enable WebYaST
If you want to build a live CD that also supports installation, leave ‘Add live installer to CDs and DVDs’ checked. But be aware this will increase the size of the resulting ISO a bit. For now, deselect that option and leave the others as-is.
This sub-tab will allow you to execute scripts at the end of the build process and/or each time the client boots. Again, for the sake of simplicity we’re going to skip adding/changing anything here but when trying to reduce the size of your ISO/image file the ‘end of build’ script can be a very powerful tool to run through and delete unneeded files and directories. I suggest re-visiting these options after your initial build if your interest lies in minimizing the ISO footprint.
That wraps up the ‘Configuration’ tab settings. Now we’ll move into the ‘Files’ tab.
The Files tab
Up till this point you may have been wondering when or how the actual VMware View Client itself was going to get installed. Well, wonder no more! This is tab is where we will add the .tar.gz file created from extracting the VMware View Client out of the Ubuntu .DEB file.
The ‘Files’ tab allows you to add pretty much any kind of file you like to the base template. This is incredibly useful if you’ve made an archive of many specific settings/properties files and just want to lay them in over the base image. It’s also a great place to drop in custom or home-built software which is what we are going to do right now.
Click ‘Upload file…’ and navigate to the location where you placed your extracted VMware View Client .tar.gz archive. Wait for it to upload, and we are done. In this case all the default settings are what we want – the archive should be extracted into ‘/’ or the root directory and since permissions will be preserved we shouldn’t need to touch those.
The Build tab
And now the magic happens. The Build tab is where you configure how you would like your appliance to be “output” – what formats it will be created in.
Since our goal here is to make a live CD let’s set that to the default. Choose ‘Live CD/DVD (.ISO)’ from the drop down list.
With that setup we can now kick off the build of the live CD. Click ‘Build’ and go grab something to drink. Or you can peruse this captivating gallery of a build in process:
The build is complete. Now we get to one of the coolest features of SUSE Studio – the testdrive! You’ll notice this option to the right of the final build size for your appliance. Clicking it will launch a new browser window and will load your appliance into a virtual machine. The console for the machine opens in the new browser window and you can interact with it from there. It’s important to note that NO outbound network traffic is allowed from a testdrive, it’s just there to let you verify and modify the configuration of your appliance before wasting the time and bandwidth to download it. It’s an incredibly useful tool. One other note is that if you look carefully you’ll see that the version number of your appliance has been auto-incremented. This will happen on each build. You can of course set your own specific version number but this is also a nice touch.
Let’s take this appliance for a testdrive…
As you can see the custom logo and background are present and looking rather dapper. One thing that could be changed is the bootloader timeout – it should probably be reduced to 0. That would be a good thing to add to a post-build script or apply via a configuration file archive but for now I will leave that as an exercise for the reader. You can also see that the VMware View Client launches automatically in full screen mode so all a user would see is the prompt to connect and login.
So that’s it. We have a good basis for a PC re-purposing live CD built quite easily and quickly via SUSE Studio. It’s substantially smaller (230MB) than the Ubuntu live CD I showed you how to build previously, but to be fair, no time at all was spent on optimizing that image. Still, I think it’s quite a bit easier to build an image via SUSE Studio than to use UCK and manually strip out significant portions of the OS. However, this method also means you’re completely unsupported but as Captain Kirk once said, “Risk is part of the game. You want to sit in that chair?”. Well, do you?
This post gives just enough information to build a starting point. There are several tweaks and enhancements that can be made from this point:
- Adjust bootloader timeout to 0 to avoid users doing whatever it is that users do when they break stuff
- Add a script to determine the proper VMware View Connection Server and pass it in via command line to the VMware View Client
- Add a script that locks the user into the VMware View Client so that when they exit it, or logoff from a desktop it automatically relaunches
- Re-enable the firewall and open only the required ports
- Prune the image to reduce overall size. It’s not bad right now, but could probably get under 200MB with a bit of effort and probably to about 150MB with a bit more
I hope you find this information useful. Post in the comments if there’s another distro you’d like to see me mess with, or if you already have and have had success.
That’s all for now.