Maniatux's Blog

Welcome to the internet

Debian GNU/kFreeBSD Wheezy dans une jail FreeBSD 10

Rédigé par Xavier - - 2 commentaires

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.

2 commentaires

#1 Oxy a dit :

Salut,
Tu déchires tu viens de m'aider à contourner un problème merci ; )

Si je ne me trompes pas tu fais ton installes avec la méthode des "jail" et pas en utilisant ezjail, qui a une gestion de la conf un peu différente ... (on ne mets rien ou presque dans le /etc/rc.conf pas de /etc/jail.conf pour une gestion globale, mais une gestion par jail dans un fichier de conf différent dans /usr/local/etc/ezjail/$JAIL.
Niveau backup, tu penses pouvoir utiliser les archives avec ezjail-admin et par un snap ZFS également ?
Tu avais réussi à faire la même chose en utilisant ezjail par hasard, ça m’intéresserait.

Continue à nous tenir au jus de tes péripéties avec FreeBSD.

#2 Xavier a dit :

@Oxy :
Salut,
Je n'utilise pas ZFS car mon serveur n'est pas assez costaud mais en théorie j'imagine qu'à la main un snapshot est possible.
Mais je ne suis pas trop emballé par les snapshot, je fais plutôt de la sauvegarde incrémentielle avec basculement sur une semaine.

Les commentaires sont fermés.