Labtainers in a Web desktop through noVNC X11 proxy, full docker containers

Here’s another recording of a demo I’ve made of our efforts on running Labtainers with a Web desktop.

This time, we’re using a modified version of DoroWu’s noVNC X11 wrapper container (“docker-ubuntu-vnc-desktop“), to provide an X11 Display to labtainers.

I initially adapted DoroWu’s container image by using Debian instead of Ubuntu, but it appeared that noVNC 1.0.0 was a bit too old in the Debian package. So I switched back to the same version as the one DoroWu chose, and this time no more disconnections.

Also, we’re now rebuilding the Labtainer master container from upstream’s Git repo. Fresh Labs every day 😉

Continue reading “Labtainers in a Web desktop through noVNC X11 proxy, full docker containers”

Demo of displaying labtainers labs in a Web browser through Guacamole

Here’s a first report on trying to add Guacamole to Labtainers in order to allow running Labtainers in a headless way, without an X display, in containers, and accessing the GUI in a Web browser, through the use of VNC and Guacamole.

We’ve casted a demo of it :

Labtainer + Guacamole demo on Vimeo.

Continue reading “Demo of displaying labtainers labs in a Web browser through Guacamole”

First tests of virtual labs for a Network-related MOOC in the frame of project FLIRT

We’ve been working, in project FLIRT, together with our partner ProCAN and with the help of the FUN MOOC team, on integrating a virtual desktops solution for MOOC labs. The idea is that instead of downloading a VM image to perform labs in a VirtualBox VM locally, participants of the MOOC can execute the lab in a Cloud VM, in a “Desktop as a Service” environment, accessing that Desktop through a full-screen display in their Web browser. Thus, no installation is needed on the participant’s machine.

ProCAN has been busy improving their CloVER platform to provide such a feature, which is being tested for a few weeks with (paying) participants of an IMT MOOC on principles of networking, hosted on the FUN MOOC platform.

The participants interested in a “value added” variant fo the MOOC will pay for obtaining a certificate, and having access to this “Desktop as a Service” lab environment. Free participants will have to install a VM image in a more traditional way.

So far it seems the solution works as expected (with a relatively low number of users for this first experiment). It uses the “basic” CloVER plan, wich manages IaaS VMs (hosted on an OpenStack cloud). There have been a few useability issues, which are being solved (copy/paste, shared files, which required some tuning of the Guacamole integration, under the hood).

CloVER acts as a broker between OpenEdX and OpenStack, by managing the making and deployment of VMs (for professors and MOOC participants) and so as to allow teaching assistants to support the execution of the labs if need be.

We plan to experiment with a container-based variant with the upcoming “pro” plan of the CloVER platform in the coming months (for other MOOCs or SPOCs). That new version should also bring new features for an educational context, like collaborative use of the virtual environments. But the main benefit will probably be the improved start speed for deploying a new desktop for a participant, and an improved life-cycle for the execution of the virtualized labs. At the moment, the current IaaS based variant relies in always-on VMs per participant, for the whole duration the the labs, even though the machine is used in a sparse way. With containers, we can make sure to activate the DaaS only when the user actually works on the lab, provided that we can save the user’s session in a persistant storage, of course. That’s for the current R&D efforts at ProCAN.

In the making of this integration, we should thank the FUN MOOC team, for the useful collaboration, in making sure it’s easier to integrate external services with the OpenEdX platform operated by FUN MOOC. We’ve worked together on improving the use of a generic XBlock connector, using LTI to better integrate CloVER and OpenEdX. This should be helpful for other MOOCs hosted by FUN MOOC in the future.

The future FLIRT MOOCs should be able to test the evolutions of the CloVER DaaS solution, but this will require also some work on the educators side, to make sure we master the technology used to create containers, integrate them in a learning process, etc.

Making Debian stable/jessie images for OpenStack with bootstrap-vz and cloud-init

I’m investigating the creation of VM images for different virtualisation solutions.

Among the target platforms is a destop as a service platform based on an OpenStack public cloud.

We’ve been working with bootstrap-vz for creating VMs for Vagrant+VirtualBox so I wanted to test its use for OpenStack.

There are already pre-made images available, including official Debian ones, but I like to be able to re-create things instead of depending on some external magic (which also means to be able to optimize, customize and avoid potential MitM, of course).

It appears that bootstrap-vz can be used with cloud-init provided that some bits of config are specified.

In particular the cloud_init plugin of bootstrap-vz requires a metadata_source set to “NoCloud, ConfigDrive, OpenStack, Ec2“. Note we explicitely spell it ‘OpenStack‘ and not ‘Openstack‘ as was mistakenly done in the default Debian cloud images (see https://bugs.debian.org/854482).

The following snippet of manifest provides the necessary bits :

---
name: debian-{system.release}-{system.architecture}-{%Y}{%m}{%d}
provider:
  name: kvm
  virtio_modules:
  - virtio_pci
  - virtio_blk
bootstrapper:
  workspace: /target
  # create or reuse a tarball of packages
  tarball: true
system:
  release: jessie
  architecture: amd64
  bootloader: grub
  charmap: UTF-8
  locale: en_US
  timezone: UTC
volume:
  backing: raw
  partitions:
    #type: gpt
    type: msdos
    root:
      filesystem: ext4
      size: 4GiB
    swap:
      size: 512MiB
packages:
  # change if another mirror is closer
  mirror: http://ftp.fr.debian.org/debian/
plugins:
  root_password:
    password: whatever
  cloud_init:
    username: debian
    # Note we explicitely spell it 'OpenStack' and not 'Openstack' as done in the default Debian cloud images (see https://bugs.debian.org/854482)
    metadata_sources: NoCloud, ConfigDrive, OpenStack, Ec2
  # admin_user:
  #   username: Administrator
  #   password: Whatever
  minimize_size:
    # reduce the size by around 250 Mb
    zerofree: true

I’ve tested this with the bootstrap-vz version in stretch/testing (0.9.10+20170110git-1) for creating jessie/stable image, which were booted on the OVH OpenStack public cloud. YMMV.

Hope this helps

Conférence “L’économie du logiciel libre et la percée d’OpenStack dans le cloud” le 27/03 à Évry

L’association Minet organise une conférence le 27/03 dans les locaux de Télécom SudParis et Télécom École de Management à Évry, qui promet d’être intéressante.

Elle portera à la fois sur l’économie du logiciel libre et sur l’essort d’OpenStack dans le cloud.

N’hésitez pas à venir nombreux sur le campus pour écouter les interventions de Jonathan Le Lous, Julien Brichard et Raphaël Ferreira, et rencontrer votre serviteur 😉

Plus de détails sur le site de Minet.