class

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

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
declares_groups?(params : Hash(String, YAML::Any)) : Bool

Groupes secondaires déclarés (clé présente, même liste vide) ? Pur.

Source
name

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

Source