Vérification et dépannage¶
Vérifications post-déploiement¶
Vault est unsealed et opérationnel¶
docker exec $(docker ps --filter name=reemo_vault1. -q) bao status
Sortie attendue :
Key Value
--- -----
Sealed false
En mode Raft, vérifiez aussi les 3 replicas :
for n in 1 2 3; do
echo "=== Replica $n ==="
docker exec $(docker ps --filter name=reemo_vault${n}. -q) bao status
done
Cluster Raft : liste des membres¶
ROOT=$(jq -r .root_token playbooks/secrets/reemo/vault/init.json)
docker exec -e BAO_TOKEN=$ROOT $(docker ps --filter name=reemo_vault1. -q) bao operator raft list-peers
Sortie attendue : les 3 replicas listés, avec un leader et deux followers.
CredentialAPI et son token¶
# Le Docker secret existe
docker secret ls | grep reemo_VAULT_TOKEN
# Le token a bien un period (720h)
TOKEN=$(docker exec $(docker ps --filter name=reemo_credentialapi. -q | head -1) cat /run/secrets/reemo_VAULT_TOKEN)
docker exec -e BAO_TOKEN=$TOKEN $(docker ps --filter name=reemo_vault1. -q) bao token lookup
Vérifiez ces valeurs :
period=720hrenewable=truettlproche de 720h (renouvelé toutes les 6h)policies=[credentialapi-admin default]
Supercronic tourne dans le container¶
docker exec $(docker ps --filter name=reemo_credentialapi. -q | head -1) ps aux | grep supercronic
Vous devez voir un process supercronic actif. Pour voir les logs des renew :
docker logs $(docker ps --filter name=reemo_credentialapi. -q | head -1) 2>&1 | grep renew
Test manuel d’un renew :
docker exec $(docker ps --filter name=reemo_credentialapi. -q | head -1) /usr/local/bin/renew-vault-token.sh
Sortie attendue :
[2026-06-08 12:34:56] [renew-vault-token] [INFO] Token renewed successfully, new TTL: 2592000s (720h)
Dépannage¶
Vault est scellé après un redémarrage¶
Qu’est-ce que ça signifie ?
Après un redémarrage, Vault repasse automatiquement à l’état “scellé” par sécurité. Il faut le “desceller” pour rétablir l’accès.
Comment identifier le problème ?
Le coffre Vault scellé s’affiche de trois façons différentes :
Endpoint API /api/healthcheck
Accédez à
https://votre-portail/api/healthcheck. Danscredential-providers, vous verrez :"status": "ERROR", "error": "Vault is sealed"
Interface web : verified_user Zone d’administration > build Système > monitor_heart État des services
Vault affiche un état Erreur avec la description Vault is sealed.
Interface web : verified_user Zone d’administration > key Secrets > enhanced_encryption Fournisseurs de secrets
La fiche Vault affiche un tag rouge Scellé avec le bouton Desceller disponible.
Comment réparer ?
Deux voies selon votre contexte :
Situation |
Action |
|---|---|
Ansible runner disponible |
Relancez le playbook complet (descellement automatique) : ansible-playbook -i inv playbook/reemo-infra.yml --tags vault
|
Runner indisponible ou intervention isolée |
Descellez manuellement via l’interface web : voir procédure manuelle (vous aurez besoin des clés |
Le playbook a perdu init.json¶
Symptôme : Vault is initialized but no init.json found at <path>.
Cause : fichier supprimé ou playbook lancé depuis un autre runner sans cette sauvegarde.
Solution :
Récupérez
init.jsondepuis votre gestionnaire de mots de passeRecréez le fichier :
mkdir -p playbooks/secrets/reemo/vault chmod 700 playbooks/secrets/reemo/vault # Écrire le json dans playbooks/secrets/reemo/vault/init.json chmod 600 playbooks/secrets/reemo/vault/init.json
Re-chiffrez avec ansible-vault si besoin.
Relancez le playbook :
ansible-playbook -i inv playbook/reemo-infra.yml --tags vault
Le token CredentialAPI a un TTL qui diminue¶
Symptôme : TTL descend progressivement (700h → 680h → …) au lieu de rester ~720h.
Cause : supercronic ne renouvelle pas le token toutes les 6h.
Diagnostic :
Vérifiez que supercronic tourne :
docker exec $(docker ps --filter name=reemo_credentialapi. -q | head -1) ps aux | grep supercronic
Vérifiez les logs de renouvellement :
docker service logs reemo_credentialapi --tail 200 | grep renew
Note
Un TTL de 700h–720h est normal. Un TTL < 0 est alarmant.
Solution :
Redémarrez le service :
docker service update --force reemo_credentialapi
Permission Denied¶
Symptôme : La communication ne fonctionne plus avec le Vault. Message d’erreur dans le healthcheck : Permission Denied
Cause : le token utilisé par credentialapi n’est plus valide.
Diagnostic :
Vérifiez l’état du token :
TOKEN=$(docker exec $(docker ps --filter name=reemo_credentialapi. -q | head -1) cat /run/secrets/reemo_VAULT_TOKEN) docker exec -e BAO_TOKEN=$TOKEN $(docker ps --filter name=reemo_vault1. -q) bao token lookup
Solution :
Supprimer le service credentialapi :
docker service rm reemo_credentialapi
Supprimer le secret VAULT TOKEN
docker secret rm reemo_TOKEN_VAULT
Relancer credentialapi par reemo-infra
ansible-playbook -i inventory.yml playbooks/reemo-infra.yml --tags vault,credentialapi