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.
With the recent public release of a full PCoIP View client for Linux I imagine many people will look to use this as a low-cost platform for re-purposing PCs as a lightweight View endpoint.
As the VMware View Client for Linux is only (officially) available for Ubuntu right now I will focus on that. Consider this the first part of an ongoing series, but right now I’m just going to cover the basics of getting an image setup so that you can live boot Ubuntu and have the View Client installed in the image.
Before we do anything you are going to need to grab Ubuntu 11.10 (http://www.ubuntu.com/download/ubuntu/download). I will be using the 32-bit version for this walk-through.
I also will be doing the creation and testing of the live CD from a virtual machine and I highly recommend you do the same. I am using my home lab with vSphere 5, so I’ll be using vCenter to create a new VM, but any virtualization platform can be used.
The virtual machine we’re creating here will be our live CD “build” machine, there’s nothing special about it, it’s just a straight installation of Ubuntu, so let’s get on with it. First, create a new VM, select “Typical”, give it a name and location, select resource pools, and select storage placement – I assume the audience for this blog is quite familiar with this process, so I will skip detailed instructions. When prompted for “Guest Operating System”, select Linux, and under “Version” select Ubuntu Linux (32-bit).
Complete the final steps of the New Virtual Machine Wizard – I created a 30GB disk which is likely overkill – and create the VM. I did make some changes to the hardware settings – I bumped up to 2GB RAM and added a second CPU. This is not required, it just made me feel good.
Once the VM is created mount the Ubuntu ISO file into it via whatever your preferred method is. I uploaded the ISO to a datastore, and mapped it into the VM from there. If you use this method make sure to select “Connected” and “Connect at power on” – and then to deselect these options after the installation process is complete.
Access the console for the VM, and power it on. Shortly after it boots you will be presented with the following screen, select “Install Ubuntu”
Again, I am going to skim the details of OS installation as I assume my audience is familiar with the process:
- I selected “Download updates while installing”
- I allowed the installer to use the whole disk and took the default file system layout (2 partitions)
- Select your location and language preferences
- Enter your user account information, and select “Log in automatically”
- Let the installation complete
- When prompted to restart, click “Restart Now”. You should then be prompted to remove the installation media per the image below
- Disconnect the ISO image from the VM, go back into the console, and press ‘Enter’ to complete the shutdown
The VM will reboot and you should be taken directly to the Ubuntu desktop (if you selected Log in automatically, otherwise you will be prompted for credentials):
You may want to maximize the resolution of the desktop as things can get a little cramped at the default 1024×768, but this is personal preference.
Ok, the prep work is mostly complete. Next up, we will get ready to start creating our live CD image using UCK.
Installing the Ubuntu Customization Kit (UCK)
The Ubuntu Customization Kit (UCK) allows you to create a new live CD ISO from an existing Ubuntu installation ISO image and to apply any desired customization along the way.
UCK is available right from within the Ubuntu Software Center, but there are newer versions available from SourceForge. For this walk-through I will be using UCK 2.4.5. The easiest way to get this installed is to open Firefox within the Ubuntu VM and navigate to: http://sourceforge.net/projects/uck/files/uck/2.4.5/
Select and download ‘uck_2.4.5-0ubuntu1_all.deb’, when prompted, choose to open the file with Ubuntu Software Center, and click ‘OK':
After the download completes, Ubuntu Software Center will launch, and you’ll be prompted to install UCK. Notice the warning that an older version is available, chuckle to yourself about all the people running an older version when they could be on the bleeding edge like yourself, and then click “Install”. Note that you will be prompted for your password to perform root level operations.
During installation you will be asked if you want to add UCK to the launcher, I chose to do so, but it’s not required, you’ll just need to open UCK via dash or a terminal shell if you choose not to add it. Once installation is complete, close Ubuntu Software Center and Firefox. Now we are ready to move into image customization.
Customizing and Creating the LiveCD Image
Before we launch UCK we need to pull down a copy of the Ubuntu installation ISO as that is what UCK will be performing it’s customization on. Accomplish this by whatever means suit you – you can download it directly from Ubuntu again from within the VM, pull it off a network share, FTP, etc. I grabbed my copy from the webserver on my NAS via Firefox so it has been placed in my user ‘Downloads’ directory which maps to ‘/home/<user>/Downloads’. You’ll need to know the path so you can provide it to UCK.
Once you have a copy of the Ubuntu ISO accessible to the VM, launch UCK. The process to do this may vary depending on the options you selected during the installation process, but if you followed my advice and added it to the launcher simply click the UCK icon to launch it.
You will see a welcome screen, which you can dismiss, followed by language pack selection screens. I chose ‘en’ but choose whichever items are appropriate for your use case. Eventually you’ll come to a desktop environment selection screen.
I selected ‘gnome’. You are now asked to locate the ISO image that will be the basis of the newly created live CD. Navigate to the location where you placed the ISO, and click ‘OK’
UCK will then prompt you to name your CD, I entered “VMware View live CD”. Next UCK will ask if you want to customize the CD manually during building – why yes you do! Select ‘yes’ and continue.
You will be asked if you want to delete all Windows-related files from the CD. As I am not planning to run this CD under Windows, I chose to remove them. Next up is the selection for a hybrid image (ISO/USB), I chose yes as I imagine we might want to run this from a USB stick as well as a CD.
Initial configuration of UCK is now complete and the package creation will now begin. After clicking ‘OK’ you will be prompted for your user password again to allow root-level activities to take place.
UCK will unpack the ISO, mount it, and open up a chroot’d environment so that you can further customize the live CD environment. This may take several minutes depending on the speed of your VM and storage. Once this process is complete you’ll be presented with customization options – you can either run the package manager to add/remove packages, or run a console application (open a terminal as root) to do whatever you like. Let’s begin by getting the VMware View Client installed.
Installing the VMware View Client for Linux
Unfortunately, we can’t just go right out and grab the VMware View Client. Nope, first we need to fix a few things.
Select “Run console application” and click ‘OK’. This will open the UCK cutomization console and leave you at a root prompt.
At this prompt type:
You are welcome to use a different editor but I prefer vi. If you are unfamiliar with vi commands please Google ‘vi’ and you will find several excellent guides.
As you can see the list of sources is pretty slim so let’s add a few before continuing, switch to edit mode, open a new line and add the following repositories:
deb http://us.archive.ubuntu.com/ubuntu/ oneiric universe deb http://archive.canonical.com/ubuntu oneiric partner
After adding the new repository locations, save the file and exit (ESC :wq in vi). Then run:
This will allow apt to update the package lists from the newly added repositories. Now we should be able to install the VMware View Client by typing:
apt-get install vmware-view-client
You will notice that libssl0.9.8 is added to the install list and you will be prompted for confirmation. Confirm that you do want to continue and just let the magic happen.
After the installation completes you can test out the VMware View Client by typing:
You will have to accept the EULA and then the client should open. Hooray!
Since all we want right now is a live CD with the VMware View Client available, then our modifications are done. Let’s complete the build and get an ISO.
Completing the live CD Build
Exit out of the UCK customization console by entering:
You will return to the customization action screen. Select “Continue building” and click ‘OK’
UCK will then begin creating the live CD ISO. Expect this to take several minutes to complete.
Once the build is complete you will get a summary screen informing you of where the ISO file has been placed. Typically this is: /home/<user>/tmp/remaster-new-files/livecd.iso
Click ‘OK’ to close the summary window. If you started UCK from the launcher icon there will still be a terminal window open, it will ask you to press ‘Enter’ to close the terminal, and you should do as it says, we certainly don’t want to make it angry now after having come so far.
Testing the Newly Created ISO
Before we waste a DVD or needlessly format a thumb drive it would probably be a good idea to test the ISO we just made. This is easy to do and we can reuse our Ubuntu VM to do the testing.
First we should transfer the ISO file off the VM because if we don’t, we can’t really boot into it now can we? I moved my ISO file off to my NAS again, and renamed it to livecd_view_client.iso, but you can name it anything you wish. I then once again uploaded the file to a datastore via vCenter.
Next we need to configure the VM to boot off the CD. To do this, edit the VM settings, go to the “Options” tab, and select “Boot options”. On the right-hand side, check the “Force BIOS Setup” box.
This will allow us to tweak the boot order so that the CD-ROM drive will take precedence over the hard drive. Restart the Ubuntu VM from the system settings menu (the icon that looks like a gear crossed with a power button icon) by selecting “Shut Down…” and then selecting “Restart”. Wait for the VM to restart into the BIOS setup utility.
Using the arrow keys, select the “Boot” menu, and then highlight “CD-ROM Drive”. Use the ‘+’ key to move it up in the boot order on top of the “Hard Drive” option.
Press ‘F10′ to save and exit, and before you confirm the changes, open the VM settings one more time, and map in the live CD ISO file. I did this just as I did above when preparing the VM for the initial Ubuntu installation (see the earlier screenshot). Make sure you check “Connected” and “Connect at power on”.
Now go ahead and confirm the BIOS changes which will cause the VM to restart.
If you did everything right, you should be prompted with a screen like this:
Select “Try Ubuntu” and you will be taken to a desktop running under the ‘ubuntu’ user. Now since we didn’t make any effort to create an icon for the View client on the desktop or in the Launcher we have to open it another way. One quick option is to use Dash.
Click the Dash icon and in the search box enter ‘vmware’. This should locate the VMware View Client application. Click the VMware View Client icon and off you go.
You will once again need to accept the EULA (this is a new user) and then the VMware View Client should launch.
Let’s go ahead and get connected to a desktop…
Now that you have tested the live CD ISO you are welcome to deploy it however you like. Burn it directly to a CD/DVD depending on size, or use one of the many guides available to deploy it to a USB drive.
To be fair, this is not in any kind of state to act as a true base image for something like full-scale PC re-purposing, it’s far too large, and it doesn’t automatically boot into the VMware View Client. Going forward i plan to address some of these shortcomings, but for now this is a good way to least get a feel for the performance of the new VMware View Client for Linux on a range of hardware without causing any damage to the underlying OS installation.
More to come on this as time permits.
UPDATE: I have been asked to provide the resulting ISO so here is a link you can use to grab it. As with anything you might get from someone else’s Dropbox – Use at your own risk. I take no responsibility for any damages that may be caused by the use of this file, and I make no warranty as to it’s validity or authenticity – is that scary enough for ya? With that out of the way, here you go: livecd_view_client.iso