proxmos
This commit is contained in:
Executable
+47
@@ -0,0 +1,47 @@
|
||||
set -euo pipefail
|
||||
set -x # optional: keep for debugging
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Determine the directory that contains this script (handles symlinks)
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# Load the .env file that lives beside the script
|
||||
set -a # automatically export assignments
|
||||
source "${SCRIPT_DIR}/.env"
|
||||
set +a
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
echo "ADDR = ${ADDR}"
|
||||
echo "USERNAME = ${USERNAME}"
|
||||
echo "PASSWORD = ${PASSWORD}"
|
||||
|
||||
# ---- login ----
|
||||
login=$(curl -s -k -d "username=${USERNAME}&password=${PASSWORD}" \
|
||||
"https://${ADDR}:8006/api2/json/access/ticket")
|
||||
echo "=== LOGIN RESPONSE ==="
|
||||
echo "$login"
|
||||
echo "======================"
|
||||
|
||||
# Extract ticket & CSRF
|
||||
TICKET=$(echo "$login" | grep -o '"ticket":"[^"]*' | cut -d'"' -f4)
|
||||
CSRF=$(echo "$login" | grep -o '"CSRFPreventionToken":"[^"]*' | cut -d'"' -f4)
|
||||
|
||||
echo "Ticket: $TICKET"
|
||||
echo "CSRF : $CSRF"
|
||||
echo "-------------------"
|
||||
|
||||
if [[ -n "$TICKET" && -n "$CSRF" ]]; then
|
||||
vmlist=$(curl -s -k -b "PVEAuthCookie=${TICKET}" \
|
||||
-H "CSRFPreventionToken: ${CSRF}" \
|
||||
"https://${ADDR}:8006/api2/json/cluster/resources?type=vm")
|
||||
echo "=== VM LIST RAW ==="
|
||||
echo "$vmlist"
|
||||
echo "===================="
|
||||
if command -v jq >/dev/null 2>&1; then
|
||||
echo "=== VM LIST FORMATTED ==="
|
||||
echo "$vmlist" | jq .
|
||||
fi
|
||||
else
|
||||
echo "Login failed – no ticket/CSRF token."
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user