The short version

This is for KVM/CernVM 2.2.0/Basic and CMSSW_4_1_5 and there is no guarantee whatsoever this will work in and other combintaion of releases.

(1) Spin up a virtual machine
. ~/.euca/euca2-dbauer-x509/eucarc
Make key (if not done before): euca-add-keypair lesc00 | tee lesc00.private
Look up image name if necessary: euca-describe-images (EMI=Eucalyptus Machine Image)
euca-run-instances -k lesc00 -n 1 -t m1.large emi-5E041712
Check it's up and running: euca-describe-instances
Open ports if necessary: euca-authorize -P tcp -p 22 -s 155.198.211.0/24 default

(2) Configure the machine
The the instructions from CERN.
Log into the machines web interface at: https://[the machines ip]:8003
Set the admin password (default is admin/password) and the make a user (dbauer/group set to CMS).
I can now log into the machine, but there's not much there:
[dbauer@deathstar ~]$ ssh dbauer@146.169.37.107
[dbauer@host-10-40-1-66 ~]$ ls /opt/
[nothing]

Hitting 'Save' on the user account setup page brings up the CernVM preferences page.
In the "CernVM Groups and Repositories" set "Choose appliance primary group" to CMS and hit 'Save':
[dbauer@host-10-40-1-66 ~]$ ls /opt/
classads cms d-cache edg external glite globus gpt grid lcg
Hit all three 'Saves' on the page and click the 'Apply updates and Reboot' button. Wait for the machine to come back and hit 'OK'.
After the machine comes back,you need to go back to the CernVM preferences page again, and hit 'Save' on the "CernVM Groups and Repositories" section again, otherwise everything in /opt is lost again. (Surely that's a bug ?)

(3) Get the missing config files
Make a directory called /etc/cms/SITECONF/: sudo mkdir -p /etc/cms/SITECONF
and all the subdirectories:
cd /etc/cms/SITECONF
sudo mkdir -p T2_UK_London_IC/JobConfig
sudo ln -s T2_UK_London_IC/ local
Copy in the missing config files:
cd local/JobConfig
(note: check if newer version of these files is available first)
sudo wget -O cmsset_local.sh http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/COMP/SITECONF/T2_UK_London_IC/JobConfig/cmsset_local.sh?revision=1.6
sudo wget -O cmsset_local.csh http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/COMP/SITECONF/T2_UK_London_IC/JobConfig/cmsset_local.csh?revision=1.6
sudo wget -O site-local-config.xml http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/COMP/SITECONF/T2_UK_London_IC/JobConfig/site-local-config.xml?revision=1.1

(4)Setup the CMS environment and run the executable
export SCRAM_ARCH=slc5_amd64_gcc434 (for 64 bit releases)
. /cvmfs/cms.cern.ch/cmsset_default.sh
OK, one error, despite the redux:
[dbauer@host-10-40-1-66 ~]$ ls
ERROR: ld.so: object 'libgsiTunnel.so' from LD_PRELOAD cannot be preloaded: ignored.
Arrgghhhh.
(For cosmetic reasons just comment it out in cmsset_local.sh for now.) scram project CMSSW CMSSW_4_1_5
cd CMSSW_4_1_5
cd src
cmsenv
ln -s /opt/cms/slc5_amd64_gcc434/cms/cmssw/CMSSW_4_1_5/python/Configuration/Generator/bJpsiX_7TeV_cfi.py .
cmsDriver.py bJpsiX_7TeV_cfi.py -s GEN,SIM,DIGI,RECO -n 10 --no_exec --conditions=auto:startup
cmsRun bJpsiX_7TeV_cfi_py_GEN_SIM_DIGI_RECO.py
[wait]
[dbauer@host-10-40-1-66 src]$ ls -l *.root
ERROR: ld.so: object 'libgsiTunnel.so' from LD_PRELOAD cannot be preloaded: ignored.
-rw-rw-r-- 1 dbauer dbauer 451160 May 12 13:52 bJpsiX_7TeV_cfi_py_GEN_SIM_DIGI_RECO.root