module

Beryl::CLI::HeadscaleAuthkey

Sous-commande beryl headscale-authkey <serveur> — génère une PRE-AUTH KEY sur le serveur Headscale (le bastion qui héberge le control plane), à injecter ensuite dans un node via HEADSCALE_AUTHKEY (recette headscale-node → primitive headscale-join). Ferme le trou opérationnel n°1 : avant, l'opérateur devait SSH à la main sur le serveur et lancer headscale preauthkeys create.

Flux : SSH root sur le serveur → headscale preauthkeys create --user <u> --expiration <e> [--ephemeral] [--reusable] → extrait la clé (sortie JSON).

Exemples : beryl headscale-authkey z.example.net # clé 1h, user = société beryl headscale-authkey z --user acme --create-user beryl headscale-authkey z --ephemeral --reusable --expiration 720h # CI AUTHKEY=$(beryl headscale-authkey z -q) ; ... # -q = clé seule (pipe)

Commandes distantes csh-safe (root FreeBSD = csh) : pas de redirection Bourne.

Constants

DEFAULT_CONFIG = "/usr/local/etc/headscale/config.yaml"
EXIT_GEN_FAILED = 6
EXIT_NO_BINARY = 5
EXIT_OK = 0
EXIT_PARSE_ERROR = 7
EXIT_SSH_FAILED = 2
EXIT_UNEXPECTED = 3
EXIT_USAGE = 1
HEADSCALE_BINARY = "headscale"

Class methods

extract_key(stdout : String) : String | Nil

Extrait le champ key de la sortie headscale preauthkeys create -o json. La sortie peut contenir des lignes de log avant le JSON → on isole le bloc JSON (de la 1ʳᵉ { à la dernière }). Renvoie nil si introuvable. Non-private : exposé pour les specs (parsing = partie sensible).

Source
run(config_root : String, args : Array(String)) : Int32
Source