OpenBao (openbao)
Gestionnaire de secrets de la plateforme : coffre KV des identifiants des fournisseurs (lus par LiteLLM et le Control Plane, jamais par les agents) et clés Transit pour la signature de l'audit, avec un stockage Raft intégré.
Généré depuis catalog/services/openbao.yaml : ne pas modifier à la main.
Résumé
| Version | 2.7.2 |
| Usage | installer et configurer |
| Couche | infrastructure (présentée à part) |
| Catégorie | Identité et secrets |
| Méthodes d'installation | binary |
| Connexion externe | non |
| Réservé au bac à sable | non |
Licence
| Identifiant SPDX | MPL-2.0 |
| Politique de licence | exception de licence |
| Exception de licence | LEX-006 (en attente de la décision du client) |
| Composant de la plateforme | openbao |
Paquets et artefacts
Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.
| Type | Paquet | Version | Licence | Détails |
|---|---|---|---|---|
| archive binaire | openbao_2.7.2_linux_amd64.tar.gz | 2.7.2 | MPL-2.0 | https://github.com/openbao/openbao/releases/download/v2.7.2/openbao_2.7.2_linux_amd64.tar.gz, x86_64, somme de contrôle sha256 |
Systèmes et architectures pris en charge
| Méthode | Systèmes d'exploitation | Architectures |
|---|---|---|
binary | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64 (architecture des artefacts du descripteur) |
Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.
Prérequis
Hôte
- au moins 1024 Mo de mémoire (bloquant,
memory). - une horloge synchronisée (avertissement,
time_sync).
Réseau et ports
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|---|---|---|
openbao-server | api | 8200/tcp | oui |
openbao-server | cluster | 8201/tcp | oui |
Services et connexions nécessaires
Ce service n'a aucune dépendance.
Méthodes et modes d'installation
| Méthode | Défaut | Ce que la méthode utilise |
|---|---|---|
binary | oui | les archives binaires du descripteur, décompressées dans le répertoire du service |
Composants
| Composant | Type | Méthodes d'installation | Ports |
|---|---|---|---|
Serveur OpenBao (openbao-server) | maître | binary | 8200/tcp, 8201/tcp |
Nœud unique (Raft) (standalone) (par défaut)
Un seul nœud avec le stockage Raft intégré.
Ce que le mode déploie :
| Composant | Placement |
|---|---|
openbao-server | min 1, max 1 |
Haute disponibilité (Raft) (ha)
Trois ou cinq nœuds Raft ; un actif, les autres en attente.
Ce que le mode déploie :
| Composant | Placement |
|---|---|
openbao-server | min 3, max 5, nombre impair, recommandé 3 |
Installer ce service
L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.
-
Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.
-
Choisissez le service. À l'étape Service, sélectionnez OpenBao. La carte affiche la licence
MPL-2.0. -
Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode :
standalone(par défaut),ha. Chaque mode déploie les composants listés dans Méthodes et modes d'installation. -
Liaisons. Ce service n'a aucune dépendance : l'étape Liaisons n'a rien à lier.
-
Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.
-
Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.
-
Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.
Haute disponibilité
| Cluster | natif (native) |
| Haute disponibilité | natif (native) |
| Bascule | natif (native) |
| Réplication | natif (native) |
| Quorum | Raft (raft) |
| Découverte | statique (static) |
| Point d'entrée | répartiteur (load-balancer) |
| Documentation officielle | https://openbao.org/docs/configuration/storage/raft/ |
| Paramètre TLS entre pairs | tls_enabled |
| Commande d'état du cluster | raft_peers |
Topologie par mode
| Modes | Niveau le plus haut du catalogue | Répartition | Composant du quorum | Domaines de panne | Description |
|---|---|---|---|---|---|
standalone | autonome (standalone) | unique (single) | - | 1 | Un nœud avec le stockage Raft intégré. |
ha | cluster (cluster) | actif-passif (active-passive) | openbao-server | 3 | 3 ou 5 nœuds Raft : un actif, les standbys lui transmettent et prennent le relais s'il tombe. |
Remarques
- Un nœud redémarré reste scellé jusqu'à son descellement (aucun descellement automatique n'est configuré par le catalogue).
Paramètres de configuration
Réseau
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Port de l'API (port) | port | 8200 | - | non | non | oui | Port de l'API HTTP et de l'interface web. |
Port du cluster (cluster_port) | port | 8201 | - | non | non | oui | Port de la réplication Raft et du transfert de requêtes entre les nœuds. |
TLS (tls_enabled) | bool | false | - | non | non | oui | Servir l'API en TLS avec un certificat émis par l'autorité de la console (obligatoire en production). |
Interface web (ui_enabled) | bool | true | - | non | non | non | Servir l'interface web sur le port de l'API. |
Initialisation et descellement
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Parts de clé (key_shares) | int | 5 | min 1, max 10 | non | non | non | Nombre de parts de clé de descellement créées à l'initialisation. |
Seuil de clés (key_threshold) | int | 3 | min 1, max 10 | non | non | non | Nombre de parts nécessaires au descellement. |
Journalisation
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Niveau de journalisation (log_level) | enum | info | trace, debug, info, warn, error | non | non | non | Verbosité du journal du serveur. |
Points d'accès
| Point d'accès | Schéma | Composant | Port | Chemin | Paramètre TLS | Paramètres de liaison | Secrets de liaison | Commande de provisionnement |
|---|---|---|---|---|---|---|---|---|
api | http | openbao-server | 8200 (port) | - | tls_enabled | - | - | - |
Fichiers de configuration client
Fichiers rendus pour le téléchargement de la configuration client :
openbao.env(client.env.j2)
Commandes
| Commande | Composant | Cible | Description |
|---|---|---|---|
Initialiser (init) | openbao-server | premier hôte | Initialise le cluster une seule fois. Les clés de descellement et le jeton racine sont écrits dans le fichier init.json en mode 0600 sous le répertoire de configuration du premier nœud, jamais affichés dans les journaux ni les sorties des tâches : transférez-les à la garde des clés de la banque, puis supprimez le fichier. (demande une confirmation) |
Desceller (unseal) | openbao-server | tous les hôtes | Descelle chaque nœud avec les clés de init.json (transmises sur l'entrée standard, jamais dans argv ni les journaux). |
Pairs Raft (raft_peers) | openbao-server | tous les hôtes | Affiche l'état de scellement du nœud (les pairs exigent un jeton : utilisez la CLI). |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|---|---|
openbao-server | HTTP {{ 'https' if config.tls_enabled else 'http' }}://{{ host.fqdn if config.tls_enabled else (host.ip or '127.0.0.1') }}:{{ config.port }}/v1/sys/health?standbyok=true&perfstandbyok=true&uninitcode=200&sealedcode=200 | Attendu 200 ; 30 tentatives ; intervalle 2 s ; délai 3 s |
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|---|---|---|---|
memory | memory_mb {"min": 1024} | au moins 1024 Mo de mémoire | bloquant | tous les composants |
api_port_free | port_free {"param": "port"} | port 8200 libre sur l'hôte | bloquant | tous les composants |
cluster_port_free | port_free {"param": "cluster_port"} | port 8201 libre sur l'hôte | bloquant | tous les composants |
time_sync | time_sync {} | une horloge synchronisée | avertissement | tous les composants |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.data }}, {{ paths.log }}.
Liens rapides
- Interface web :
{{ 'https' if config.tls_enabled else 'http' }}://{{ host.fqdn }}:{{ config.port }}/ui/
Documentation amont
- Site : https://openbao.org
- Sources : https://github.com/openbao/openbao
- Haute disponibilité : https://openbao.org/docs/configuration/storage/raft/