Once again, I'm amazed at some of our Partners and what they do.  DJ, who works for a Sun VAR in the Switzerland, www.acceleris.ch, sent me this. If you are in need of saving money, call DJ at Acceleris.

Here
is just one instance of DJ wanting to help the community.  This is why Sun Microsystems is a partner
centric organization.  The whole is greater than the sum of it's parts.  Or the Community is greater the the sum of just Sun's Parts.

Here is what DJ ask that I share it with you!


________________________________



In
my opinion (yes I admit: I am biased ;-) ) this stuff is highly useful
for anyone who has to work with a tight budget ... and given the
current financial crisis worldwide I could imagine that many people in
many companies and IT departments have tight budgets too now ...

So all this is written under the following assumptions:

a)
You cannot afford or simply don't want to pay the mind-boggling license
costs for VMware's ESX and "Virtual Infrastructure" products
b) you don't have the server hardware required to run VMware ESX anyway ... but having VDI-like features would be nice.
c) but you have a reasonably strong PC somewhere somehow and you have a few Sun Ray DTU's which you could use
d)
you don't mind not (yet) having the management abilities VI3 offers and
you're perfectly happy with any alternative ... (Sun will soon release
xVM Server and xVM OpsCenter anyway)

I myself implemented my "Poor Man's VDI" on the following configuration:

- Sun Ultra 24 PC, Intel Quad-Core CPU, 8 GB RAM, 250 GB disk
- OS: Solaris Express, build 98
- SRSS 4.1

and last but not least:  VirtualBox 2.0.2 :-)

Here we go:


1.) Install Solaris

...
confgure a few demo user accounts, and then install SRSS (I use Solaris
Express build-98 + SRSS 4.1), configure it the way you want, e.g. Kiosk
Mode and everything. On my setup I use Opera 9.61 as "kiosk mode
browser":

- get the Solaris package for Opera: http://www.opera.com/download/solaris/
- unpack and install it
- switch to a normal account (not root!) and launch it:  /usr/local/bin/opera
- Opera will open and and ask you to confirm the license ... Hit "I agree" ... you shouldn't see that window ever again.
- adjust Opera to your own liking, e.g. set the homepage to http://www.sun.com
- quit Opera

Now we copy your newly generated Opera settings somewhere else so every Kiosk user gets these same settings:

cp -r /export/home/yourusername/.opera /opt/
mv /opt/.opera /opt/opera-prototype
chown -R root:root /opt/opera-prototype
find /opt/opera-protype -type d -exec chmod 755 {} \;
find /opt/opera-prototype -type f -exec chmod 644 {} \:

Then
in the Sun Ray Admin Console make sure that this command gets executed
in the kiosk mode (I placed it into a script: /usr/bin/opera_kiosk.sh),
e.g. as "Executable" and mode set to "Critical":

#! /bin/bash
/usr/local/bin/opera
-personaldir /opt/opera-prototype -resetonexit -kioskmode -nosplash
-nomail -nomaillinks -noprint -nosave -nohotlist -nomenu -nocontextmenu
-nodownload -nosession -kioskbuttons -kioskwindows http://www.sun.com

=> Result: a very good looking but pretty much locked-down web browser ... ideal for kiosk mode sessions.


2.) Download and install VirtualBox

 e.g. from here:
http://download.virtualbox.org/virtualbox/2.0.2/VirtualBox-2.0.2-36488-SunOS_amd64.tar.gz


3.) switch to normal user accounts and create a few VM's in VirtualBox.

Make
sure that the guest addons are installed. In my case I have a virtual
Ubuntu machine in one account; another account has a virtual Windows
XP, and then again another account has a virtual Novell SLED
installation, and so on ...

Piece of advice: Don't use spaces in
the names, e.g. don't call your VM "My OpenSolaris test VM" but rather
something like "OpenSolaris_Test"

And if you want:  Configure
your VM to perform an "Auto Login", e.g. not ask for username and
password. User authentication and access to your VM will be handled by
the Sun Ray server later, so there is no need for extra authentication
via the guest-OS, IMHO


4.) Each user who wants to use "Poor Man's VDI" should have an ".autovm" file in their $HOME directory.

The file should contain the name of the virtual machine that you want to access when you login via dtlogin, e.g.:

echo my_WinXP > ~/.autovm

...
If they don't have that file and try to access the "AutoVM" session
(see below for that) they will get an error message and be returned
back to dtlogin.


5.) Configure dtlogin 

But first
credit where credit is due:  For the life of me I could not figure out
how to create a custom session for "dtlogin" (on Linux with "gdm" it is
sooo easy!) ... I then ran across this web page which shows how to
create a custom "IceWM" session for dtlogin ... So I more or less
"borrowed" everything from here: 
http://www.softagalleria.net/icewm.php   .... And then I installed XFCE
and borrowed even more from the various scripts there.

We need to create a bunch of files now:


a) /usr/bin/vbox_autovm :

#! /usr/bin/bash
AUTOVM=`cat $HOME/.autovm`
if [ -z $AUTOVM ]
  then
    /usr/bin/zenity --error --text="You have not yet configured your ~/.autovm file. Please ask your administrator."
    exit 1
fi
/usr/bin/VBoxSDL -fullscreen -vm $AUTOVM



b) /usr/dt/config/Xsession.autovm :

#!/bin/ksh
#####################################################################
###  File:              Xsession.autovm  Version 0.1
###
###  Default Location:  /usr/dt/config/Xsession.autovm
###
###  Purpose:           Automatic start of VirtualBox VMs
###
###  Invoked by:        Solaris Desktop Login Manager (dtlogin)
###
#####################################################################

DTDSPMSG=/usr/dt/bin/dtdspmsg

export SESSIONTYPE="altDt"
export SDT_ALT_SESSION="/usr/dt/config/Xsession2.autovm"
export SDT_ALT_HELLO="/bin/true"
export SDT_NO_TOOLTALK="1"
export SDT_NO_DTDBCACHE="1"
export START_SPECKEYSD="no"
exec /usr/dt/bin/Xsession


c) /usr/dt/config/Xsession2.autovm :

#!/bin/ksh
#####################################################################
###  File:              Xsession2.autovm  Version 0.1 $Revision: 1.0 $
###
###  Default Location:  /usr/dt/config/Xsession2.autovm
###
###  Purpose:           Launch VirtualBox VMs
###
###  Invoked by:        /usr/dt/bin/Xsession
###
#####################################################################

# First a little namespace cleanup of vars associated with this
# (and /usr/dt/bin/Xsession.ow) scripts.

unset SDT_ALT_SESSION
unset SDT_ALT_HELLO
unset SDT_NO_DSDM

if [ -f /etc/dt/config/Xinitrc.autovm ]; then
    XINITRC="/etc/dt/config/Xinitrc.autovm"
else
    XINITRC="/usr/dt/config/Xinitrc.autovm"
fi

if [ -x /usr/dt/bin/xmbind ]; then
    /usr/dt/bin/xmbind
fi

echo 'AutoVM'

if [ -f $XINITRC ]; then
    echo "using xinitrc file: $XINITRC"
    /bin/ksh $XINITRC
else
    echo "xinitrc file: $XINITRC not found"
fi


d) /usr/dt/config/Xinitrc.autovm :

#!/bin/ksh
#####################################################################
###  File:              Xinitrc.autovm  Version 0.1 $Revision: 1.0 $
###
###  Default Location:  /usr/dt/config/Xinitrc.autovm
###
###  Purpose:           Launch VirtualBox VMs
###
###  Invoked by:        /usr/dt/bin/Xsession
###
#####################################################################

if [ "x$LC_ALL" = x -a "x$LANG" = x -o "x$LANG" = xC ]; then
  export LC_ALL="C"
  export LC_CTYPE="C"
else
  export LC_MESSAGES=$LANG
fi

export G_FILENAME_ENCODING=@locale,UTF-8
export G_BROKEN_FILENAMES=yes

/usr/openwin/bin/xrdb -merge << EOF
! Default CDE resources
*WindowColor:           #8A008A008A00
!*WindowForeground:      #FF0000000000
!*DataBackground:        #0000FF000000
*DataForeground:        #FF0000000000
*WorkspaceColor:        #8A008A008A00
*Color.Background:      #FF000000FF00
!*Color.Foreground:      #0000FF000000
*foreground:            #000000000000
! Hack for Dtmail
*XmText*background: seashell
*XmTextField*background: seashell
*Message_List*background: seashell
*background:    #AE00B200C300
Dthello*string:        Welcome to the OpenSolaris Xfce Desktop
EOF

if [ -f $HOME/.Xdefaults ]; then
    xrdb -merge $HOME/.Xdefaults        # Load Users X11 resource database
fi

/usr/bin/linc-cleanup-sockets

command=/usr/bin/vbox_autovm

if [ -x "/usr/bin/dbus-launch" -a -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
    command="/usr/bin/dbus-launch --exit-with-session $command"
else
    echo "$0: dbus-launch not found."
fi

if [ -x "/usr/bin/ssh-agent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
    command="/usr/bin/ssh-agent -- $command"
else
    echo "$0: ssh-agent not found."
fi

echo 'Starting AutoVM'
exec $command


e) /usr/dt/config/C/Xresources.d/Xresources.autovm :

Dtlogin*altDtsIncrement:    True
Dtlogin*altDtName:    AutoVM
Dtlogin*altDtKey:     /usr/bin/vbox_autovm
Dtlogin*altDtStart:     /usr/dt/config/Xsession.autovm
Dtlogin*altDtLogo:    XFCE


=> this last file also needs to be copied to the other locales ... as "root":

find /usr/dt/config -name Xresources.d -exec cp /usr/dt/config/C/Xresources.d/Xresources.autovm {} \;


Voila, done!

If
you did correctly setup everything and if you did not forget to create
that ~/.autovm  file that contains the name of the VM you want to
start, you should now be able to go to your next best Sun Ray, type in
your username into the "dtlogin" mask, select "AutoVM" as your session
type, type in your password .... and you should now be watching how
your favourite VM is booting. And it boots pretty fast (yes, VirtualBox
rocks!)

Once it's booted you can just leave it like that ...
Session hotdesking of course works as well. Insert your SmartCard into
another DTU and your VM follows you wherever you go ...

I tested
this stuff here in my lab and my colleagues here are pretty happy with
it especially given the price tag for the software (not including
possible license costs needed for proprietary guest Operating Systems
in your VM's ...):  Zero. All the software needed (Solaris + SRSS +
VirtualBox) to implement this type of "Poor Man's VDI" can be
downloaded for free from SUN's web site.

Insert card ... we have
a Novell SLED running. Insert another card ... Windows XP ... Insert
another card: Ubuntu .... Insert another card: Solaris desktop.  ....
Even better: Thanks to the "Remote Control" scripts you already posted
this also works from SGD, e.g. a user can access whatever VM he has
started in the office via the "My Sun Ray Session" menu entry inside
SGD ... :-)

So what exactly do I need VMware and their incredibly expensive licenses for?? :-)
Comments:

Post a Comment:
  • HTML Syntax: NOT allowed

This blog copyright 2008 by Tim Ebbers