infra/ansible/scripts/get-postgres-password.sh
2025-08-02 11:14:56 -05:00

37 lines
No EOL
984 B
Bash
Executable file

#!/bin/bash
# Script to retrieve PostgreSQL password from 1Password
set -e
# Default values
DEFAULT_USER="aprsme"
DEFAULT_HOST="CM3588"
DEFAULT_ACCOUNT="YOOATCZZSVGH7AD6VABUVPORLI"
# Parse arguments
USER="${1:-$DEFAULT_USER}"
HOST="${2:-$DEFAULT_HOST}"
ACCOUNT="${3:-$DEFAULT_ACCOUNT}"
# Item name in 1Password
ITEM_NAME="PostgreSQL $USER - $HOST"
echo "Retrieving password for: $ITEM_NAME"
# Get password
PASSWORD=$(op item get "$ITEM_NAME" --fields password --reveal --account "$ACCOUNT" 2>/dev/null)
if [ $? -eq 0 ]; then
echo "Password retrieved successfully"
echo
echo "Connection details:"
echo " User: $USER"
echo " Password: $PASSWORD"
echo
echo "URL-encoded password (for connection strings):"
echo "$PASSWORD" | python3 -c "import urllib.parse; print(urllib.parse.quote(input(), safe=''))"
else
echo "Error: Could not retrieve password from 1Password"
echo "Make sure the item '$ITEM_NAME' exists in your vault"
exit 1
fi