diff --git a/content/articles/2021/freebsd_bastillefile_howto/index.md b/content/articles/2021/freebsd_bastillefile_howto/index.md new file mode 100644 index 0000000..24a1371 --- /dev/null +++ b/content/articles/2021/freebsd_bastillefile_howto/index.md @@ -0,0 +1,271 @@ +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 `/