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



