HPC @ Uni.lu

High Performance Computing in Luxembourg

We rely on a set of open-source software and frameworks to operate the platforms and the services attached or complementary to the UL HPC systems, namely:

  • Puppet - configuration management
  • FAI - OS deployment


Puppet is an open source configuration management tool from Puppet Labs designed to manage the configuration of Unix-like and Microsoft Windows systems declaratively.
The user describes system resources and their state, either using Puppet’s declarative language or a Ruby DSL (domain-specific language). This information is stored in files called “Puppet manifests”. Puppet discovers the system information via a utility called Facter, and compiles the Puppet manifests into a system-specific catalog containing resources and resource dependency, which are applied against the target systems. Any actions taken by Puppet are then reported.

We have defined a distributed Puppet infrastructure which currently manages servers.

A general overview of our Puppet infrastructure is depicted below.

Download the PDF

Overview of the Puppet Management

You can benefit from our Puppet infrastructure to deploy and bootstrap you servers! See below for details.

FAI (Fully Automatic Installation)

FAI is a non-interactive system used to install, customize and manage Linux systems and software configurations on computers as well as virtual machines and chroot environments, from small networks to large-scale infrastructures like clusters and cloud environments. It’s a tool for unattended mass deployment of Linux. We use it to deploy the computing nodes of the different node classes that compose the UL HPC platform.

The different steps that intervene during a FAI deployment are depicted below:

Using our Puppet infrastructure to bootstrap your servers

We can greatly facilitate the configuration of your freshly delivered server by connecting it to our Puppet infrastructure. Also, depending on your needs, we can also create a new VM on our virtualization infrastructure, even if we encourage people in general to prefer the framework offered at this level by the SIU.

For instance, the following experiment has been performed to illustrate the deployment efficiency of our Puppet infrastructure. We have measured the time required to configure four different environments on a newly created VM. Each of these configurations has been applied by our puppet infrastructure three successive times and we stored the completion time of each run. This test has been repeated 100 times for each configuration and the results are proposed in the below figure.

It follows that the first runs permit to completely bootstrap a running system with the fully configured services. Most of the time is spent on the many packages that have to be installed – on average between 161s and 364s, meantwhile it still remains quite fast to get a fully configured and running server. The remaining runs (2 and 3) simply reapply the selected configuration thus mainly ensuring that the packages and configuration files are present and coherent, or that the services (apache, nfs etc.) are indeed running.

In all cases, we can take care of bootstrapping the system configuration of your server as soon as a local administrator for this machine with basic sysadmin knowledge is clearly identified. He will become responsible of the deployed machine.

For more details, simply contact us.

With great power comes great responsibility

The local administrator(s) of the machine is (are) expected to perform the necessary security actions (such as maintain the system up-to-date) and have the basic command-line knowledge that justify the confidence entrusted in him (them).
We take very seriously the security of the servers we manage, and you should do so. In particular, you are encouraged to read (or re-read) the Securing Debian Howto.

Again, be aware that we propose the bootstrapping of systems using our Puppet infrastructure to help you (and your research unit) to accelerate the deployment of IT services. Yet don’t expect us to be responsible for that service maintenance and security. We can eventually support you further deployments on it assuming the associated Puppet module exists on our side (and that you are satisfied by the way it configures things), for the rest, YOU ARE responsible for that machine.