Jail avec iocage

Depuis longtemps maintenant j’utilise le vieux paquet ezjail pour administrer mes jails. Si ce dernier me donne pleine satisfaction (I can get no), il est temps d’évoluer et de regarder du coté de iocage comment cela se passe.

Présentation

iocage est un script python3 qui pour but de facilter la gestion des différentes jails que vous pouvez avoir à mettre en place sur votre serveur.

C’est lui qui est installé par défaut par exemple sur FreeNAS.

Le projet est sur github, mais c’est l’installtion en paquet que nous allons utiliser.   si vous avez une poudrière, vous pouvez bien sûr passer par cette dernière.

Installation et mise en service

Installation

L’installation ne pose aucun problème :

1
 $ sudo pkg install iocage


La mise en service

La mise en service est longue et, je dois le reconnaître, fait un peu peur.

En effet, la commande d’activation réclame un zpool(8) et quand on en a un qu’un sur sa machine, la peur de tout voir disparaître et grande. Pas d’inquiétude toutefois, rien (chez moi) n’a disparu.

Si vous avez d’autres zpool à votre disposition, vous n’êtes pas obligé d’utiliser zroot comme je le fait.

1
 $ sudo iocage acivate zroot

La phase suivante est très longue. Elle consiiste à récupèrer les éléments nécessaires à la constitutions des jails (les versions de systèmes, mises en places des datasets, des modèles, etc.)

 $ iocage fetch
 ********************************************************************************
 fdescfs(5) is not mounted, performance may suffer. Please run:
 mount -t fdescfs null /dev/fd
 You can also permanently mount it in /etc/fstab with the following entry:
 fdescfs /dev/fd  fdescfs  rw  0  0
 ********************************************************************************
 
 Creating zroot/iocage
 Creating zroot/iocage/download
 Creating zroot/iocage/images
 Creating zroot/iocage/jails
 Creating zroot/iocage/log
 Creating zroot/iocage/releases
 Creating zroot/iocage/templates
 Default configuration missing, creating one
 [0] 11.2-RELEASE
 [1] 11.3-RELEASE
 [2] 12.0-RELEASE
 
 Type the number of the desired RELEASE
 Press [Enter] to fetch the default selection: (12.0-RELEASE)
 Type EXIT to quit: [0] 11.2-RELEASE
 Downloading: MANIFEST [####################] 100%
 Downloading: base.txz [####################] 100%
 Downloading: lib32.txz [####################] 100%
 Downloading: src.txz [####################] 100%
 Extracting: base.txz...
 Extracting: lib32.txz...
 Extracting: src.txz...
 
 * Updating 12.0-RELEASE to the latest patch level...
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.
 Fetching public key from update4.freebsd.org... done.
 Fetching metadata signature for 12.0-RELEASE from update4.freebsd.org... done.
 Fetching metadata index... done.
 Fetching 2 metadata files... done.
 Inspecting system... done.
 Preparing to download files... done.
 Fetching 843 patches..... done.
 Applying patches... done.
 Fetching 59 files... ....10....20....30....40....50.... done.
 The following files will be removed as part of updating to
 12.0-RELEASE-p9:
 …
 Installing updates... done.

Une première jail

Une fois cette mise en jambe terminée, nous allons pouvoir créer une première jail.

La documentation fournie sur github est claire, mais nous allons toutefois essayer d’autres options :

 # sudo iocage create -n ajail dhcp=on ip6

Notre jail portera le nom de ajail devrait recevoir une adresse IPv4 via DHCP et une adresse IPv6.

  Le processus est là aussi assez long, soyez patient•e.

  Pensez à lire la page de manuel pour en savoir plus sur les options et commandes disponibles.