agent-bootstrap/templates/pull_secrets_template.sh

32 lines
1.2 KiB
Bash
Raw Permalink Normal View History

#!/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! ==="