|
|
@@ -1,25 +1,25 @@
|
|
|
#!/bin/bash
|
|
|
-# Vault auto-unseal script
|
|
|
-# Reads unseal key from vault-init.json and unseals Vault
|
|
|
+# Vault auto-unseal script — managed by Ansible, do not edit manually
|
|
|
+# Reads unseal key from /etc/vault.d/unseal.key and unseals Vault
|
|
|
|
|
|
set -e
|
|
|
|
|
|
-VAULT_ADDR="http://127.0.0.1:8200"
|
|
|
-INIT_FILE="/docker_mounts/vault/vault-init.json"
|
|
|
+VAULT_ADDR="http://127.0.0.1:{{ vault_port }}"
|
|
|
+UNSEAL_KEY_FILE="/etc/vault.d/unseal.key"
|
|
|
|
|
|
-if [ ! -f "$INIT_FILE" ]; then
|
|
|
- echo "ERROR: vault-init.json not found at $INIT_FILE"
|
|
|
+if [ ! -f "$UNSEAL_KEY_FILE" ]; then
|
|
|
+ echo "ERROR: unseal key not found at $UNSEAL_KEY_FILE"
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
-UNSEAL_KEY=$(jq -r '.unseal_keys_b64[0]' "$INIT_FILE")
|
|
|
+UNSEAL_KEY=$(cat "$UNSEAL_KEY_FILE")
|
|
|
|
|
|
if [ -z "$UNSEAL_KEY" ]; then
|
|
|
- echo "ERROR: Could not extract unseal key from $INIT_FILE"
|
|
|
+ echo "ERROR: unseal key file is empty"
|
|
|
exit 1
|
|
|
fi
|
|
|
|
|
|
-# Wait for Vault to be ready
|
|
|
+# Wait for Vault API to become ready (up to 60 s)
|
|
|
for i in $(seq 1 30); do
|
|
|
STATUS=$(curl -sf "${VAULT_ADDR}/v1/sys/health" 2>/dev/null || true)
|
|
|
if [ -n "$STATUS" ]; then
|
|
|
@@ -30,7 +30,7 @@ for i in $(seq 1 30); do
|
|
|
fi
|
|
|
break
|
|
|
fi
|
|
|
- echo "Waiting for Vault... ($i/30)"
|
|
|
+ echo "Waiting for Vault API... ($i/30)"
|
|
|
sleep 2
|
|
|
done
|
|
|
|
|
|
@@ -38,5 +38,5 @@ echo "Unsealing Vault..."
|
|
|
curl -sf -X PUT "${VAULT_ADDR}/v1/sys/unseal" \
|
|
|
-H "Content-Type: application/json" \
|
|
|
-d "{\"key\": \"${UNSEAL_KEY}\"}"
|
|
|
-
|
|
|
+echo ""
|
|
|
echo "Vault unsealed successfully."
|