31 lines
1.2 KiB
Bash
31 lines
1.2 KiB
Bash
#!/bin/bash
|
|
# pull_secrets_template.sh
|
|
# Template für Methode B: Dynamischer Pull von Secrets auf einer VM/Host ohne MacBook.
|
|
#
|
|
# Voraussetzungen:
|
|
# 1. Infisical CLI auf der VM/Host installiert.
|
|
# 2. Eine Machine Identity in Infisical erstellt und für das Projekt freigegeben.
|
|
# 3. Client ID und Client Secret in der Umgebung bereitgestellt.
|
|
|
|
set -e
|
|
|
|
# Konfiguration
|
|
INFISICAL_API_URL="https://zitate.info.lu/api"
|
|
CLIENT_ID="${INFISICAL_CLIENT_ID:-your-client-id}"
|
|
CLIENT_SECRET="${INFISICAL_CLIENT_SECRET:-your-client-secret}"
|
|
SECRET_PATH="/jmap-proxy" # Zielpfad im Infisical-Vault
|
|
ENV_OUTPUT="/opt/jmap-proxy/.env"
|
|
|
|
if [ "$CLIENT_ID" = "your-client-id" ] || [ "$CLIENT_SECRET" = "your-client-secret" ]; then
|
|
echo "❌ Fehler: Bitte passe CLIENT_ID und CLIENT_SECRET an!" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== 1. Hole temporären Access Token via Universal Auth ==="
|
|
export INFISICAL_API_URL
|
|
export INFISICAL_TOKEN=$(infisical login --method=universal-auth --client-id="$CLIENT_ID" --client-secret="$CLIENT_SECRET" --silent --plain)
|
|
|
|
echo "=== 2. Exportiere Secrets direkt in lokale Konfigurationsdatei ==="
|
|
infisical export --path "$SECRET_PATH" --env=prod --format=dotenv --silent > "$ENV_OUTPUT"
|
|
|
|
echo "=== Secrets erfolgreich bezogen und nach $ENV_OUTPUT geschrieben! ==="
|