LXC, consoles et logs

le

Un petit addendum à mon post précédent sur LXC : la gestion des consoles et de leurs logs.

Comme pas mal de messages, notamment ceux de boot, sont loggés via /dev/console, il est très pratique de rediriger ceci vers un fichier de l'hôte. C'est très utile pour débugger les conteneurs qui ne démarrent pas où sont injoignables ...

Enfin si vous ne souhaitez pas utiliser SSH pour atteindre le conteneur, vous pouvez utiliser la console locale qui est mise à votre disposition. Mais quand vous êtes root sur l'hôte, vous n'avez en général pas envie de retaper un mot de passe pour joindre chaque conteneur. Ca ni nécessaire niveau sécurité, ni pratique. On peut demander à "getty" de faire de l'auto-login ...

Côté configuration LXC (/etc/lxc/jenkins.conf), ça donne ceci :

lxc.tty = 1
lxc.console = /var/log/lxc/jenkins.log

Je n'ai demandé qu'un tty, personnellement ça me suffit amplement. Il y a un bug côté invité sous Debian Squeeze, /dev/tty1 ne semble pas être créé automatiquement ... Du coup la liste complète des manips côté hôte est :

# mkdir /var/log/lxc
# mknod -m 0600 /var/lib/lxc/jenkins/rootfs/dev/tty1 c 136 0
# vi /var/lib/lxc/jenkins/rootfs/etc/inittab

....
c1:12345:respawn:/sbin/getty -n -l /bin/bash 38400 tty1 linux
(commentez toutes les autres entrées relatives à "console" et "tty*")

Et voilà, plus qu'à (re)démarrer votre conteneur et profiter de tout ceci :

# tail -f /var/log/lxc/*.log
# lxc-console -n jenkins

Partager cet article :