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.
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.
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
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/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
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
/home, and so on. You may use the following sequence of commands:
rooton the target node, mount the target
partitionfor instance) on an available mountpoint (usually
youon the frontend machine, you now can safely
tarthe content of this target directory:
rooton the target node, you may then umount
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