Title: Bastille: créer des templates pour vos Jails FreeBSD Category: sysadmin Tags: FreeBSD, Bastille, jails, pl-fr Date: 2021-03-30 8:38 Cover: assets/backgrounds/bastille_gravure.jpg Quand on parle de conteneurs, la majorité pense à *Docker*, mais il n'y a pas que ça dans la vie, il existe aussi les **jails BSD** (entre autres). Introduites avec la version 4 de FreeBSD (sortie en mars 2000), le principe des *Jails* est de partager les ressources d'une machine en plusieurs mini-systèmes autonomes. C'est un peu le pendant des conteneurs LXC sous GNU/Linux (première version sortie le 6 août 2008). C'est par FreeNAS que j'ai découvert FreeBSD et les jails; d'abord en utilisant *Warden* puis [iocage][l_iocage]. J'ai ensuite décidé de passer mon serveur à la maison sous FreeBSD et de tester [Bastille][l_bastillebsd] pour la gestion de mes *Jails*. ## Bastille (ou BastilleBSD) C'est un programme écrit en shell par Christer Edwards. Son but est de faciliter la gestion des *Jails* tout en adoptant le principe du KISS. Bien entendu c'est Open-Source -- licence BSD 3-Clause -- et le code source est disponible sur [Github][l_gh_bastille]. Il est disponible directement dans les dépôts binaires de FreeBSD ou via les ports. Il est aussi possible de l'installer directement depuis les sources. L'utilisation de base de Bastille est relativement simple et je ne vais pas détailler ici la mise en place et l'utilisation de base: la [documentation][l_doc_bastille] est là pour ça et elle est très bien faite. ## Créer un Patron Une des forces de Bastille est **la possibilité de créer des "patrons" (ou templates) pour vos conteneurs**. Il devient alors simple de déployer des services en deux lignes de commandes. Un dépôt Gitlab contenant des patrons tout prêts est disponible [ici][l_gitlab_templates]. Je vais prendre comme exemple l'installation de [Wallabag][l_wallabag] avec *PostgreSQL* comme système de base de données, *Nginx* comme serveur web et *PHP-fpm*. ### L'organisation du template Les templates sont positionnés dans le répertoire `/usr/local/bastille/templates` sous la forme `/