This commit is contained in:
Павел Родионов
2025-11-28 18:58:15 +07:00
parent 409ec04823
commit b558aaa76d
9 changed files with 1012 additions and 0 deletions
+47
View File
@@ -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