Hace tiempo escribí en mi blog que había tropezado casi por casualidad con una herramienta llamada BastilleBSD, https://jdrm.info/bastillebsd-un-gestor-de-contenedores-para-freebsd-y-similares.html. En aquella entrada sólo conté la existencia de este proyecto para gestionar las Jaulas en FreeBSD y similares. Así que creo que es buen momento para hacer un ejemplo de cómo funciona BastilleBSD. No desde cero, porque la documentación sobre el proceso de instalación es bastante completa, sino con un ejemplo práctico.
https://bastille.readthedocs.io/en/latest/chapters/installation.html
El comando bootstrap sirve para crear un sistema FreeBSD mínimo y aislado. Te recomiendo usar ZFS como sistema de archivo, porque al instalar un bootstrap generará una nueva partición con el sistema.
El siguiente paso es traernos las plantillas que queramos instalar. Una plantilla no es más que una receta que tiene los comandos a realizar. Es parecido a un playbook de Ansible. Cuando tengamos las plantillas y los bootstraps que necesitamos crearemos las jaulas basadas en un bootstrap y aplicaremos en ella las plantillas que necesitemos.
bastille bootstrap 14.0-RELEASE
bastille bootstrap https://gitlab.com/bastillebsd-templates/vault
zfs list | egrep "releases|templates"
zroot/bastille/releases 1.03G 54.5G 96K /usr/local/bastille/releases
zroot/bastille/releases/14.0-RELEASE 433M 54.5G 433M /usr/local/bastille/releases/14.0-RELEASE
...
zroot/bastille/templates 300K 54.5G 300K /usr/local/bastille/templates
ls /usr/local/bastille/templates/bastillebsd-templates
vault
El siguiente paso es crear una jaula. En mi caso, como estoy en una red pequeña, le asigno una IP de la red directamente indicando el interfaz de red que debe usar.
bastille create vault 14.0-RELEASE 192.168.1.155 wlan1
Y ya me puedo conectar a la jaula:
El siguiente paso es aplicar una o las plantillas que queramos a las jaulas que sea necesario. En este ejemplo voy a aplicar una plantilla para instalar Vault a una jaula, pero podría tener n jaulas a las que instalar una plantilla común.
bastille template vault bastillebsd-templates/vault
[vault]:
Applying template: bastillebsd-templates/vault...
[vault]:
Updating FreeBSD repository catalogue...
[vault] Fetching meta.conf: 100% 163 B 0.2kB/s 00:01
...
[vault]:
vault_enable: -> YES
[vault]:
Starting vault.
Template applied: bastillebsd-templates/vault
Como se puede ver en el comando estamos indicando el nombre de nuestra jaula y el de la plantilla.
También podemos crear nuestras propias plantillas generando un durectorio que contenga un fichero llamado Bastillefile dentro del filesystem donde se guardan las plantillas y aplicarlo de la misma forma.
For any feedback or corrections, please write in to: jdrm@disroot.org