API REST de Proxmox

El comando pvesh actúa como un shell para la API REST de Proxmox VE, lo que permite hacer llamadas a la API directamente desde la línea de comandos. Con este comando, se pueden administrar máquinas virtuales, almacenamiento, red y otros elementos de la infraestructura virtual de Proxmox. Esta herramienta permite realizar casi cualquier acción que se pueda hacer a través de la interfaz web de Proxmox directamente desde la línea de comandos.

pvesh <comando> [opciones]

Listado de recursos o endpoints de la API

Este comando es similar al comando ls en Linux, pero lista las rutas de la API o los recursos disponibles en el entorno de Proxmox VE.

pvesh ls /ruta

El siguiente ejemplo lista todos los recursos en el clúster de Proxmox, incluyendo VMs, contenedores y almacenamiento.

pvesh ls /cluster/resources

Recuperación de información

El comando get recupera información de un endpoint de API específico. Este comando se usa para consultar un recurso para obtener detalles.

pvesh get /ruta

Donde ruta es la ruta de la API desde la que se quiere recuperar información. Por ejemplo, para recuperar la información de estado del nodo pve-nodo1, como la carga de la CPU, el uso de la memoria y el tiempo de actividad, se puede usar el comando:

pvesh get /nodes/pve-nodo1/status

Modificación de la configuración

El comando set se usa para modificar o actualizar la configuración de un recurso. Esto es equivalente a hacer una solicitud POST o PUT en la API REST.

pvesh set /ruta --clave valor [--clave valor ...]

--clave valor son los pares clave-valor de la configuración que quieres cambiar.

Este comando cambia el nombre de la máquina virtual 100 en el nodo pve-nodo1 a nuevo-nombre-mv.

pvesh set /nodes/pve-nodo1/qemu/100/config --name nuevo-nombre-mv

Creación de un recurso

El comando create te permite crear un nuevo recurso, como una nueva máquina virtual o un volumen de almacenamiento.

pvesh create /ruta --clave valor [--clave valor ...]

Por ejemplo, se puede crear una nueva máquina virtual con parámetros específicos con el comando:

pvesh create /nodes/pve-nodo1/qemu --vmid 106 --name nuevo-nombre-mv --memory 2048 --cores 2

Este comando crea una nueva máquina virtual con ID 106 en el nodo pve-nodo1, con el nombre nuevo-nombre-mv, 2 GB de RAM y 2 núcleos de CPU.

Inicio de VMs

Hay un comando para iniciar una máquina virtual o un contenedor con pvesh:

pvesh start /ruta

Este ejemplo inicia la máquina virtual con ID 101 en el nodo pve-nodo1:

pvesh start /nodes/pve-nodo1/qemu/101

Apagado de VMs

A diferencia del comando stop, el comando shutdown apaga una máquina virtual o un contenedor de forma correcta:

pvesh shutdown /ruta

Este ejemplo apaga una máquina virtual con el ID 101 en un host de Proxmox, cuyo nombre es pve-nodo1:

pvesh shutdown /nodes/pve-nodo1/qemu/101

Inicio de todas las VMs

Para iniciar o detener todas las VMs en un nodo o en todo el clúster, se puede usar el comando correspondiente:

pvesh startall /nodes/<nombre_del_nodo>
pvesh stopall /nodes/<nombre_del_nodo>