class

Beryl::Bootstrap::Installer

Inherits Reference < Object

DEPRECATED (ADR-010 / ADR-011) — n'est plus sur le chemin principal.

Cette classe est la seconde phase du flux legacy mfsBSD + installer, conçu pour installer FreeBSD depuis mfsBSD en RAM. Elle ne marche que si la phase mfsBSD a pu booter, ce qui n'est pas le cas sur les dédiés UEFI-only. Voir ARCHITECTURE.adoc ADR-010 et ADR-011.

La voie actuelle est Beryl::Bootstrap::QemuInRescue qui remplace MfsBSD + Installer en une seule étape (bsdinstall non interactif dans une VM QEMU lancée côté rescue Linux).

Installe FreeBSD 14.2 sur disque depuis une image mfsBSD SE 14.2 active en RAM. Les dists base.txz / kernel.txz sont embarqués dans mfsBSD SE — pas de téléchargement nécessaire. Une future sous-commande beryl upgrade gérera la migration vers FreeBSD 15 quand la mfsBSD SE 15 sera disponible.

Le script shell d'installation est un template livré avec beryl (templates/install-pkgbase.sh). Les placeholders __XXX__ sont substitués côté Crystal avant upload. Les clés SSH autorisées pour root sont encodées en base64 pour traverser le shell sans encombre.

IMPORTANT : ce script est destructif pour le disque cible. L'implémentation actuelle cible une disposition simple 1 disque, partition EFI + swap + pool ZFS. Des variantes (RAID mirror, mode distset, GELI, bhyve) viendront après retour des tests grandeur nature.

Constants

SSH_POLL_INTERVAL = 15.seconds
SSH_WAIT_TIMEOUT = 20.minutes
TEMPLATE_PKGBASE = {{ read_file("/tmp/tmp.gEHJHE/src/src/beryl/bootstrap/templates/install-pkgbase.sh") }}

Charge le template au moment de la compilation : un seul binaire, pas de fichier à déployer à côté.

Constructors

new(mfsbsd_conn : SSH::Connection, target_disk : String, hostname : String, authorized_keys : Array(String), pool_name : String = "zroot", swap_gb : Int32 = 4, timezone : String = "Europe/Paris", abi : String = "FreeBSD:14:amd64")
Source

Instance methods

authorized_keys
Source
authorized_keys_base64

Concatène les clés et encode en base64 pour transport sûr à travers le shell.

Source
hostname
Source
mfsbsd_conn
Source
pool_name
Source
render_script

Rend le script d'installation en substituant les placeholders. Exposé pour les tests.

Source
run

Exécute l'installation complète et renvoie la connexion SSH vers le serveur FreeBSD fraîchement installé (clé d'hôte ignorée — ce sera fixé lors du premier beryl apply).

Source
swap_gb
Source
target_disk
Source
timezone
Source