Wednesday, April 3, 2013

Raspberry Pi Thin Client for Apache VCL (Virtual Computing Lab)

Apache VCL is a broker for remote access to virtual computing resources.  The system allows a user to reserve a virtual computer and remotely access it via the RDP protocol.  When a reservation is made, the VCL server connects to a VMware server, configures a virtual machine based on the image selected by the user and assigns it to the user for the requested period.

Currently, students in the CIST program at Pitt-Bradford utilize their personal computers to access this virtual lab under a pilot program developed by Aaron Bryant.  With my current research into the Raspberry Pi and its uses, I wanted to see if it could be utilized as a thin client for the Apache VCL system.  I was not surprised to find that a thin client image for the Raspberry Pi was already underway at the Raspberry Pi Thin Client Project.  I have taken their image and modified it to produce a thin client kiosk allowing a student to log into the VCL web interface, reserve a machine, and access it all in about two minutes (including the minute it takes the VCL system to provision the virtual machine).  Once the remote desktop session to the reserved virtual machine is initiated, the experience is the same as if the session was started from a standard desktop computer.

I currently have USB redirection working and am working on printer redirection over the RDP protocol.  The major challenge I faced was getting the browser to automatically open the RDP file to initiate the connection.  I was unable to find a Remote Desktop application for linux that could be associated with and automatically open the file (if you know of one, please let me know).  Instead I wrote a PERL script to parse the RDP file and feed the necessary information to rdesktop and its various switches.  I ran into a bit of difficulty with the username and password, but finally after opening the file in a hex editor, I discovered there were non-printable characters at the end of each line and was able to strip them from the string using a regular expression for the hex values of these characters.

Once the image is finalized,  I will post full instructions along with PERL script to parse the RDP file.

1 comment:

  1. Hi,

    Thanks for sharing !
    Any news about your experiment on raspberry pi and vcl?

    Have a nice day

    ReplyDelete