Beryl::Config::ResolvedHost
Host résolu : résultat d'une recherche dans la Root. Porte le
contexte (société, domaine, groupe éventuel) + la config effective
mergée + un accès direct aux credentials via credentials_for.
Constructors
Instance methods
Injecte TOUTES les credentials de la société dans ENV (tous
fournisseurs confondus). Utilisé par les CLI qui peuvent
potentiellement appeler plusieurs APIs (ex: scan --dns qui
touche au DNS provider + compute provider).
Injecte les credentials d'un provider dans ENV (pour les
shards OVH/Scaleway qui lisent leurs variables depuis ENV).
Retourne le nombre de variables posées.
Credentials du (account, provider) pour ce host. Utilisé par les CLI qui font des appels API (rescue, bootstrap, scan…).
ID entier Dedibox (stocké sous dedibox.server_id dans le YAML).
Retourne la valeur sous forme de String pour homogénéité avec
les autres providers ; le parsing Int32 se fait côté
Beryl::Providers::Dedibox#request_rescue.
DNS provider du domaine (qui gère la zone). Peut différer du
provider (hébergeur) — cas typique : zone chez Gandi, serveurs
chez OVH.
FQDN reconstitué : <short_name>.<domaine>. Le groupe
n'apparaît pas (règle figée : pas de rails01.web.aloli.net).
Exception : si short_name contient déjà un point, c'est un
FQDN externe (nom hébergeur type ns3156789.ip-51-83-6.eu ou
alias DNS qui ne relève pas du domaine aloli). On le garde
tel quel — sans quoi on fabriquerait un
ns3156789.ip-51-83-6.eu.aloli.net qui ne résout nulle part.
Chemin de la clé privée SSH à utiliser pour ce host.
Ordre de résolution :
identity_file:explicitement déclaré dans le merge (YAML host, domaine,_account.ymlou_default.yml). Prime.- Résolution par convention Aloli depuis
ovh.ssh_key_name: le label côté OVH (ex:philippe-aloli-fr) est traduit en fichier local<ssh_dir>/philippe.aloli.fr.key. Permet de ne pas dupliquer l'info : la même clé est référencée par son nom côté provider et résolue automatiquement côté disque. - Sinon nil.
SSH::Connectionlancera alors sans-i, et commeIdentitiesOnly=yesest forcé, l'auth publickey échouera avec un message clair (pas de fallback silencieux sur les clés par défaut du shell).
OS du host (freebsd, debian, ubuntu, …). Défaut : freebsd (historique beryl). L'architecture ADR-014 prévoit l'extension multi-OS, l'impl actuelle ne câble que FreeBSD.
IP overlay (mesh Headscale) déclarée dans le YAML host
(overlay_ip: 100.64.x.y). Lue par ssh_host quand le mode
transport global est :overlay — cf. Phase 4 de la roadmap
Headscale dans la mémoire roadmap_beryl_headscale.md.
Service name OVH. Pour un host déclaré, lu dans ovh.service_name.
Pour un host virtuel (serveur neuf) dont provider: ovh est
explicitement résolu ET dont le short_name contient un point
(FQDN hébergeur), on fallback sur short_name.
Noms des blocs providers présents dans le merged. Utile pour
les messages d'erreur quand provider: n'est pas déclaré.
Provider déclaré dans le merged (ex: "ovh", "scaleway"). Dans
le vocabulaire ADR-014 c'est le compute_provider (où le
serveur est hébergé), distinct du dns_provider du domaine.
Accès générique à un champ du bloc <provider>: (service_name,
server_id, zone, etc.).
Hostname effectif pour SSH.
Ordre de résolution :
- Si transport global =
:overlayEToverlay_ip:présent → cette IP. Use case : tous les CLI beryl appelés avec--transport=overlayparlent au host via le mesh Headscale, avec un port 22 fermé en public (cf. recipesshd-overlay-only). ssh_host:explicite dans le YAML mergé. Prime sur tout le reste sauf l'overlay. Cas d'usage : test local (ssh_host: 127.0.0.1), VPN avec FQDN interne distinct du DNS public, alias DNS provider qu'on veut figer.- Si provider OVH avec
ovh.service_name: on privilégie le FQDN OVH (toujours résoluble en DNS public). - Sinon le FQDN logique (
<short_name>.<domaine>).
Avant le fix du 28 avril 2026 (commit 3b19dfb), ssh_host: du
YAML était silencieusement ignoré sauf pour OVH — incohérent et
bloquant pour tester en local.
Vrai si l'opérateur a déclaré explicitement ssh_host: dans
un YAML du merge. Distingue le cas « override YAML » du cas
« nom de host hébergeur dérivé ». Utilisé par
Beryl.format_ssh_target pour produire un libellé sémantiquement
juste : « fqdn (via 127.0.0.1) » plutôt que « fqdn (= 127.0.0.1
côté local) » qui prêterait à confusion (« local » n'est pas un
provider hébergeur).
Vrai si ssh_host provient d'un provider hébergeur
(typiquement OVH avec ovh.service_name) et diffère du FQDN
logique. Distingue ce cas du cas « override YAML » couvert
par ssh_host_explicit?. Si l'opérateur a posé un
ssh_host: YAML, ce flag est faux même si la valeur diffère
du FQDN — la responsabilité est à l'opérateur, pas au
provider.