Debian GNU/kFreeBSD Wheezy dans une jail FreeBSD 10
Debian GNU/kFreeBSD peut être installé dans une jail sur un hôte FreeBSD. Intéressant si vous voulez garder votre serveur sous FreeBSD mais que vous voulez également profiter des jails pouvant puiser des paquets dans les dépôts Debian. Voici comment procéder.
Chargez les modules
# kldload fdescfs linprocfs linsysfs tmpfs
Ou, de manière permanente, éditez le fichier /boot/loader.conf :
fdescfs_load="YES" linprocfs_load="YES" linsysfs_load="YES" tmpfs_load="YES"
Note : ces modules ne sont pas indispensables au fonctionnement de la jail Debian GNU/kFreeBSD. Mais si on installe cet OS à partir de l'ISO officielle, on voit qu'ils sont présents et liés aux points de montage que nous verrons par la suite. Mon hypothèse est qu'ils assurent une "compatibilité Linux" pour certains logiciels non pleinement fonctionnels. linprocfs est utilisé entre autres pour ps et df. En outre cela ne mange pas de pain de les activer :)
Création de la jail
Il va falloir utiliser debootstrap et installer également perl5 qui est une dépendance.
# pkg install debootstrap perl5
Puis on créé le répertoire de la jail :
# mkdir -p /usr/jails/debian
On installe le tout :
# debootstrap wheezy /usr/jails/debian http://cdn.debian.net/debian
Configuration de la jail
Editez le fichier /etc/jail.conf
# DEFAULT PARAMETERS # exec.start = "/bin/sh /etc/rc"; exec.stop = "/bin/sh /etc/rc.shutdown"; exec.clean; mount.devfs; path = "/usr/jails/$name"; host.hostname = "$name"; # INDIVIDUAL JAIL PARAMETERS # debian { allow.mount; mount.devfs; mount.fstab="/usr/jails/debian/etc/fstab.debian"; ip4.addr = re0|192.168.0.13; exec.start = "/etc/init.d/rc 3"; exec.stop = "/etc/init.d/rc 0"; }
Editez ensuite /usr/jails/debian/etc/fstab.debian :
sys /usr/jails/debian/sys linsysfs rw 0 0 proc /usr/jails/debian/proc linprocfs rw 0 0 tmpfs /usr/jails/debian/run tmpfs rw,noexec,nosuid 0 0
Bidouille à faire pour les password, sinon la jail ne démarrera pas :
# cp /etc/master.passwd /usr/jails/debian/etc/ # pwd_mkdb -d /usr/jails/debian/etc -p /usr/jails/debian/etc/master.passwd
Démarrer la jail
# service jail start debian
On peut alors voir si la jail tourne :
# jls JID IP Address Hostname Path 15 192.168.0.13 debian /usr/jails/debian
Et on visualise également nos points de montage :
# df -h Filesystem Size Used Avail Capacity Mounted on /dev/ada0p2 140G 11G 118G 9% / devfs 1.0K 1.0K 0B 100% /dev devfs 1.0K 1.0K 0B 100% /usr/jails/debian/dev fdescfs 1.0K 1.0K 0B 100% /usr/jails/debian/dev/fd linsysfs 4.0K 4.0K 0B 100% /usr/jails/debian/sys linprocfs 4.0K 4.0K 0B 100% /usr/jails/debian/proc tmpfs 4.0G 24K 4.0G 0% /usr/jails/debian/run devfs 1.0K 1.0K 0B 100% /usr/jails/debian/dev
Notez que les points affichés peuvent être différents selon votre système.
Configurer notre Debian/kFreeBSD
Entrez dans la jail :
# jexec debian bash
Commencez par reconstruire les utilisateurs et mots de passe, car nous avons du copier ceux de FreeBSD (l'hôte) mais cela pose des problèmes :
# dpkg-reconfigure base-passwd
Reconfigurez tzdata pour remettre les pendules à l'heure :
# dpkg-reconfigure tzdata
Configurez les locales :
# apt-get update # apt-get install locales # dpkg-reconfigure locales
Et voilà.
Notez que Debian GNU/kFreeBSD est encore relativement peu utilisé, et je n'ai pas encore trouvé de retour d'expérience sur cet OS, encore moins quand on l'utilise dans une jail FreeBSD. C'est un territoire peu exploré il faut donc être prudent surtout sur un environnement de production.