Beryl::Apply::PkgVersioned
Inherits Beryl::Apply::Primitive < Reference < Object
Primitive pkg-versioned : installe un paquet FreeBSD versionné du type
<base><NN>-<composant> (mariadb, postgresql, mysql…). Idempotente.
- pkg-versioned:
base: mariadb
version: latest # défaut ; ou un numéro FreeBSD : 114, 1011…
only: server # optionnel : `server` ou `client`
server_package: postgresql18-server-aloli # optionnel, cf. plus bas
Sans only → installe server ET client. version: latest (ou
absent) → résolu par la VRAIE version (pkg rquery '%v %n' | sort -V),
car l'encodage FreeBSD sans point piège un tri des noms (mariadb 10.11
= 1011 se classerait après 11.4 = 114). Capacité ÉTROITE : installer
un paquet versionné, rien d'autre.
latest ne vaut qu'à la PREMIÈRE installation : si une version majeure
est déjà en place (<base>NN-server ou -client), elle est gardée. Sinon
pkg install de la majeure suivante remplacerait le paquet (conflit) et le
cluster existant (/var/db/postgres/data18) ne serait plus servi : le
serveur repartirait sur un data dir vide, ou ne démarrerait pas. Une montée
de majeure est une migration (pg_upgrade, mariadb-upgrade), pas un apply.
server_package : NOM EXACT du serveur, à la place de <base>NN-server —
un paquet maison de la même majeure (options différentes, ex. PostgreSQL
sans JIT), le client restant l'officiel. Exige une version explicite (un
paquet maison n'existe que pour SA majeure) et un nom qui commence par
<base><version>-server. Remplacer le serveur officiel déjà installé par
le maison est le travail de la recette (arrêt, retrait, installation,
redémarrage) : ici, on ne fait qu'installer ce qui manque.
Instance methods
params est le hash brut du step YAML (ex: {"packages" => [...]}),
déjà interpolé par l'Executor. context porte les infos
dérivées du host (cf. Context).
Nom kebab-case utilisé comme clé de step dans les recettes (« pkg-install », « service-enable », …).