class

Beryl::Apply::HeadscaleStateCommit

Inherits Beryl::Apply::Primitive < Reference < Object

Primitive headscale-state-commit : ajoute une ligne d'audit au repo aloli-aloli/headscale-state et la commit. Utilisée par les recipes sshd-public-open / sshd-public-close pour tracer chaque ouverture/fermeture de la fenêtre port 22.

L'audit s'écrit dans un fichier audit.log à la racine du repo (pas dans le dump headscale-state.sql.gz), pour ne pas être écrasé par le prochain backup automatique. Format :

<RFC3339 UTC> <event-type> <key=value>...

- headscale-state-commit:
    message: "PORT 22 PUBLIC OPEN host=loulou.aloli.net operateur=$USER raison=..."

Le message est interpolé {{var}} par l'Executor en amont ; les variables shell $USER etc. sont substituées côté shell distant.

Sérialisé via flock (le repo est partagé avec le cron de backup). Pré-requis : recipe headscale-backup déjà appliquée sur ce host (le repo doit déjà être cloné dans /etc/aloli-headscale-state/).

Constants

AUDIT_FILE = "audit.log"
LOCK_FILE = "/var/run/headscale-state-commit.lock"
REPO_DIR = "/etc/aloli-headscale-state"

Instance methods

apply(shell : Shell, params : Hash(String, YAML::Any), dry_run : Bool, context : Context) : StepResult

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).

Source
name

Nom kebab-case utilisé comme clé de step dans les recettes (« pkg-install », « service-enable », …).

Source