L’objectif de ce groupe de travail était de monter en compétences sur l’utilisation/l’intégration des différents composants de systemd à savoir : systemd-networkd, systemd-resolved, journarld, systemd-nspawn…
En effet, actuellement sur EOLE 2.6, systemd gère uniquement les services, il se contente d’assurer le passage de System V à systemd.
Qu’est ce que systemd ?
systemd est un système d’initialisation et un daemon qui a été spécifiquement conçu pour le noyau Linux comme alternative à System V.
Il a pour but d’offrir un meilleur cadre pour la gestion des dépendances entre services, de permettre le chargement en parallèle des services au démarrage, et de réduire les appels aux scripts shell. Le projet a été lancé par Lennart Poettering en 2010 et publié sous licence GNU LGPL version 2.12. Le nom de ce programme vient de « system daemon » : le daemon du système.
Source Wikipédia : https://fr.wikipedia.org/wiki/Systemd
Le site officiel du projet : https://wiki.freedesktop.org/www/Software/systemd/
Déploiement et gestion de conteneurs avec systemd-container
Installation des dépendances
root@eolebase:~# apt install debootstrap systemd-container
Génération et préparation du chroot
root@eolebase:~# export http_proxy=http://direct.proxy.i2:8080
root@eolebase:~# debootstrap xenial /var/lib/machines/xenial
Entrer dans le chroot et préparer le conteneur :
root@eolebase:~# systemd-nspawn -D /var/lib/machines/xenial/ Spawning container xenial on /var/lib/machines/xenial. Press ^] three times within 1s to kill container. Failed to create directory /var/lib/machines/xenial/sys/fs/selinux: Read-only file system Failed to create directory /var/lib/machines/xenial/sys/fs/selinux: Read-only file system /etc/localtime is not a symlink, not updating container timezone.
root@xenial:~# rm -f /etc/resolv.conf
root@xenial:~# rm -rf /etc/resolvconf/
root@xenial:~# ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
root@xenial:~# systemctl enable systemd-networkd.service
root@xenial:~# systemctl enable systemd-resolved.service
root@xenial:~# echo "pts/0" >> /etc/securetty
root@xenial:~# passwd Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
root@xenial:~# export http_proxy=http://direct.proxy.i2:8080
root@xenial:~# apt install dbus
Le conteneur est prêt à être utilisé, pour revenir sur l’hôte il faut exécuter 3 fois ctrl+]
Démarrer le conteneur
root@eolebase:~# systemd-nspawn -D /var/lib/machines/xenial/ -b
Gestion des conteneurs avec machinectl
Lister les images
root@eolebase:~# machinectl list-images NAME TYPE RO USAGE CREATED MODIFIED xenial directory no n/a n/a n/a 1 images listed.
Lister les conteneurs actifs :
root@eolebase:~# machinectl list MACHINE CLASS SERVICE xenial container systemd-nspawn 1 machines listed.
Démarrer le conteneur :
root@eolebase:~# machinectl start xenial
Se connecter au conteneur :
root@eolebase:~# machinectl login xenial Connected to machine xenial. Press ^] three times within 1s to exit session. Ubuntu 16.04 LTS eolebase pts/0 eolebase login: root Password: Last login: Wed Nov 22 16:55:23 UTC 2017 on console Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-62-generic x86_64) * Documentation: https://help.ubuntu.com/
Arrêter le conteneur :
root@eolebase:~# machinectl poweroff xenial
Supprimer le conteneur :
root@eolebase:~# machinectl remove xenial