Windows as an interactive desktop

Has anyone setup a windows interactive session through Open Ondemand? Is it possible?

I’m unsure myself if anyone has implemented this.

But, I can say that it is possible with the caveat that it isn’t something we could provide much guidance on beyond you would have to try some combination of a containerization with singularity somehow to do this and wire it back, using virtualbox to load the image maybe or something like wine with the container.

I really don’t have much guidance so I apologize, but maybe someone else has spent time on this and can provide more details.

Thanks Travis.

Or maybe connecting to a desktop on a vmware server in some way via open ondemand. I guess the user could start a linux interactive desktop then use a url to get to the vmware instance.

Just out of curiosity, what is it about the windows desktop that is specifically needed?

To have the user login to an interactive desktop to then connect to another interactive desktop makes me wonder what could be provided to avoid something like that.

I am not sure. I was asked if it is possible. I am not sure why they need to use cluster resources just to go to a windows desktop. But I said I would ask.

Ok, thanks for the follow up. If they possibly think they need the windows desktop for a specific app is mostly what I was curious about on the chance we provided that app for use already as an interactive app.

@rsand Yes it is possible. You could create a standard interactive app and adapt script.sh.erb to something like

module load QEMU
/usr/local/bin/qemu-wrapper-ood <%= context.os %> <%= context.memory %> <%= context.disk %>

where the context variables are formed as usual using form.yml and the qemu-wrapper-ood is a script that contains the logic to run qemu on the basis of what the user requested in the submission form, for instance

OS=$1
MEM=$2
DISK=$3

# prepare user's img
BASEDIR=/data2/${USER}/qemu
mkdir -p ${BASEDIR}


# do not overwrite img if it exists, but re-use it

if [[ -f "${BASEDIR}/${OS}.qcow2" ]]; then
   echo "qcow2 img found..running it.."
   qemu-system-x86_64 -drive file=${BASEDIR}/${OS}.qcow2,if=ide -m ${MEM} -boot c -display gtk -enable-kvm -vga virtio -full-screen
   

else
   echo "qcow2 img NOT found..creating one.." 
   qemu-img create -f qcow2 ${BASEDIR}/${OS}.qcow2 ${DISK}
   chmod 600 ${BASEDIR}/${OS}.qcow2
   qemu-system-x86_64 -drive file=${BASEDIR}/${OS}.qcow2,if=ide -cdrom /data2/ISOs/${OS}.iso -m ${MEM} -boot d -display gtk -enable-kvm


fi

Clearly /data2/ISOs/ contains the windows ISOs that you might want to serve.
I hope this helps.