Beryl::Apply::UserSync
Inherits Beryl::Apply::Primitive < Reference < Object
Primitive user-sync : réconcilie UN compte depuis sa déclaration
freebsd.users. Idempotente.
- user-sync:
name: deploy
secondary_groups: [www, wheel]
shell: /usr/local/bin/zsh # optionnel
primary_group: www # optionnel
state: present # ou `absent` → pw userdel
Groupes EXACTS quand ils sont déclarés (secondary_groups ou alias
groups, même vide) : le user est ajouté aux groupes listés et RETIRÉ des
autres groupes secondaires — la fiche fait foi, aussi sur un compte déjà
créé (ex. deploy sorti de wheel). Rien de déclaré : groupes laissés tels
quels. Jamais retiré : son groupe principal, ni wheel du compte par
lequel beryl se connecte (connect_user : il se couperait son sudo).
primary_group déclaré : posé aussi sur un compte existant. Le shell
n'est posé ici qu'à la CRÉATION : sur un user existant, le changement de
shell passe par user-shell (chemin déclaré) ou par sa recette
(oh-my-zsh) — sinon les deux se contrediraient (flap csh↔zsh). La suppression
exige state: absent EXPLICITE (jamais par absence) et garde le /home.
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).
Groupes secondaires déclarés (clé présente, même liste vide) ? Pur.
Nom kebab-case utilisé comme clé de step dans les recettes (« pkg-install », « service-enable », …).