Purpose
Generation of a virtual machine (VM) from an ubuntu server installation image (ISO file)
- containing The Littlest JupyerHub (TLJH)
- with the help of Packer, Vagrant and Ansible tools
- for using with VirtualBox or OpenStack.
All the tools used are exclusively free and open-source.
The Littlest JupyterHub, a recent and evolving distribution designed for smaller deployments, is a lightweight method to install JupyterHub on a single virtual machine. The Littlest JupyterHub (also known as TLJH), provides a guide with information on creating a VM on several cloud providers, as well as installing and customizing JupyterHub so that users may access it at a public URL.
Overview¶
This work was carried on a desktop computer running Windows10 / Cygwin. But any machine (laptop, desktop, server, ...) under MacOS or UNIX-like can be perfectly suitable. Please note that this requires technical skills in installing applications and assumes that you are comfortable editing configuration files.
Note: All the scripts and other configuration files mentioned in this description can be found in free access under the GiHub INRAE repository.
To build our final VM, i.e. the VM that will be instantiated for use locally (type 2 virtualization) or on a remote server (Datacenter or Cloud), we will proceed in two main steps for the creation. The first step will consist in the building of a base VM (Base box). The second step will consist, from the base VM, in installing and configuring all the system and application tools (packages) necessary to make JupyterHub work correctly from a web browser. A third step will describe how to instantiate the final VM on the Genouest cloud. The figure below gives an overview:
The three main stages
- Building the base VM (Base box) for Vagrant
- Building the final VM
- Using the final VM on an Openstack cloud
Pipeline
- In green, the pipeline path for the creation, storage and instantiation of the virtual machine.
- As input to the pipeline, an ISO file corresponding to the chosen operating system and downloaded from the Internet.
- At the output, an instance of the virtual machine operational on Genouest's Openstack cloud.
The different layers
- The configuration layer corresponds to all the files and scripts deposited in the github.
- The creation layer corresponds to all the tools installed and used on the user's local machine (except for Ansible which is installed on the virtual machine but which could very well be installed on the local machine).
- The storage layer corresponds to the storage sites of the VMs (base and final).
- The instantiation layer corresponds to the instantiated virtual machine.