#!/bin/bash PROXMOX_HOST="host" PROXMOX_USER="user" PROXMOX_PASSWORD="password" REALM="pam" NEW_USERNAME="terraforms-$(hostname)@pve" NEW_PASSWORD=$(openssl rand -base64 14) NEW_ROLE="soft" API_URL="https://${PROXMOX_HOST}/api2/json/access/users" create_user() { local response response=$(curl -s -k -b "PVEAuthCookie=${PROXMOX_TICKET}" -H "CSRFPreventionToken: ${CSRF_TOKEN}" -d "username=${NEW_USERNAME}" -d "password=${NEW_PASSWORD}" -d "roleid=${NEW_ROLE}" -d "realm=${REALM}" "${API_URL}") if [[ "${response}" == *"create failed"* ]]; then echo "Error: User creation failed." echo "${response}" exit 1 fi } authenticate() { local response response=$(curl -s -k -d "username=${PROXMOX_USER}" -d "password=${PROXMOX_PASSWORD}" -d "realm=${REALM}" -X POST "https://${PROXMOX_HOST}/api2/json/access/ticket") if [[ "${response}" == *"authentication failed"* ]]; then echo "Error: Authentication failed." echo "${response}" exit 1 fi PROXMOX_TICKET=$(echo "${response}" | jq -r '.data.ticket') CSRF_TOKEN=$(echo "${response}" | jq -r '.data.CSRFPreventionToken') } authenticate create_user echo "Usuario creado correctamente:" echo "Username: ${NEW_USERNAME}" echo "Password: ${NEW_PASSWORD}"