Environments requirements

From Grid5000
Jump to: navigation, search
Warning.png Warning

To watch

Contents

Introduction

This page describes all the minimal configuration and service requirements of a system to be sure that you will be able to deploy it, using kadeploy in the grid5000 context. This is only the easiest way to achieve this goal, not the only path to reach it.

Network configuration

DHCP, should be used to configure all the networking interfaces of every node. By configuration, I mean:

  • IP adress, netmask, network
  • routing if required on the specified network of the interface
  • routing information if routed
  • DNS server address for the site

Every node should also find its hostname, thanks to DHCP, following the ISC standard for hostname declaration in the DHCP server, not the distribution's rules. This means that the host-name option defined for each node should return its short name and the domain-name option for the subnet should be the full domain name of the site. For example the node node-1.bordeaux.grid5000.fr should be able to get its fqdn from the following lines in the dhcp.conf file:

in the node declaration:

option host-name "node-1";

in the according subnet declaration

option domain-name "bordeaux.grid5000.fr";


This standard configuration allows to deploy all the different distributions/OS and not only the site's specific one, which is a crucial point for grid5000.

Additional standards option can be used to configure additional services (ntp for example), but it is only optional, because the complicated configuration tasks can be achieved easily during the environment's postinstall.

Mandatory running services

The only mandatory service that must run on the node is ssh, because, when waiting for the nodes at the end of the deployment, kadeploy waits for them to launch this service. Besides this, your environment should allow the deploy user, defined on the deployment server of your site, to log on the node as root with ssh, without any password.

This allow kadeploy to reboot the node through an ssh invocation, avoiding a hard reboot for every deployment.

This can be done by adding the deploy user public key, in the authorized_keys file of the root account during the postinstall.

Adapting (distribution) specific features to Grid'5000 environments

This part is a work in progress, I will try to add all the specific environments needs I find, when I meet those.

/dev system directory handling

Since the linux kernel is evolving, some features, appear and some other disappear. The way it deals with the /dev inodes can differ, depending on the distribution you are using. A good distribution allows the user to choose the way he wants to do it.

static /dev

The most common, standard and advised way of doing this: a static /dev created once by a MAKEDEV script. In case of a static /dev directory handling , the device files are stored on the / filesystem.

udev and devfs

Using udev, a tmpfs (ramdisk) filesystem is mounted on /dev during the boot process of the system. Same behaviour happens with devfs, as a devfs filesystem is mounted on /dev.

The good way to create an image

In both previous cases, you will then untar a system environment with nothing in /dev, which leads to a kernel panic during the boot process of your deployed node, because the kernel needs the /dev/console and /dev/null device files for instance, before the udev or devfs service is started.

So, to create a correct environment archive, you must use a different command in order to also archive the static content of the /dev directory.

One way to be sure to archive the whole content of the / filesystem is to mount it in another location so that you have no subsequent mounts on subdirectories like /dev, /proc, /home, and so on. You may use the following sequence of commands:

  • as root on the target node, mount the target / filesystem (/dev/partition for instance) on an available mountpoint (usually /mnt):
Terminal.png node:
mount /dev/partition /mnt

or:

Terminal.png node:
mount -o bind / /mnt
  • as you on the frontend machine, you now can safely tar the content of this target directory:
Terminal.png frontend:
ssh root@node.site.grid5000.fr "cd /mnt; tar --posix --numeric-owner --one-file-system -zcf - ./" > archive.tgz
  • as root on the target node, you may then umount /mnt
Terminal.png node:
umount /mnt

Fat big hint

Anyway, as neither udev nor devfs are really useful in Grid'5000 environments context, you are advised to use the static /dev handling method.

useful untar options

In case you need to untar your image without the help of "KaDeploy" automated softwares:

tar -C /path/where/to/untar/ --same-permissions --same-owner --atime-preserve -xzf /path/to/archive.tgz
Personal tools
Namespaces

Variants
Actions
Public Portal
Users Portal
Admin portal
Wiki special pages
Toolbox